SpacemanDMM/src/langserver
William Wallace 7c2b92189c
pipe_output no longer stops piping after encountering invalid utf-8 (#256)
This only becomes a problem when stuff we haven't got control over 
decides to output to stdin or stderr.

vgstation-coders/vgstation13#28789 shows (in the most recent responses) 
that they're using an internet explorer plugin which outputs some debug 
info to stderr and terminates it with some invalid utf-8 or something. 
I don't think the details on that side are too important, we just need 
to fix the next part: This makes the language server's pipe_output 
close the stream which then makes auxtools panic when it tries writing 
to said stream (because eprintln!() will panic in such a case.)

Auxtools could handle this better, but there's no reason for the 
debugger to just stop piping output because it sees some wacky bytes.
2021-03-19 17:14:53 -07:00
..
debugger pipe_output no longer stops piping after encountering invalid utf-8 (#256) 2021-03-19 17:14:53 -07:00
build.rs Add Auxtools debugging support (#230) 2020-11-27 17:34:52 -08:00
Cargo.toml Add Auxtools debugging support (#230) 2020-11-27 17:34:52 -08:00
color.rs Address some clippy lints 2019-12-23 14:11:01 -08:00
completion.rs Add the word 'on' to var/proc completion details 2020-07-03 17:38:09 -07:00
document.rs Address some clippy lints 2019-12-23 14:11:01 -08:00
extras.rs Update lsp-types dependency 2020-04-04 15:34:29 -07:00
find_references.rs Exclude parent calls from references list 2020-09-07 10:57:01 -07:00
jrpc_io.rs Accept &str in jrpc_io::write 2020-01-11 12:56:38 -08:00
macros.rs Update lsp-types dependency to v0.80.0 2020-09-16 20:18:58 -07:00
main.rs Track disk I/O time separately from parse time 2021-03-11 19:24:14 -08:00
README.md Add a readme for the dreammaker crate 2019-07-02 20:35:20 -07:00
symbol_search.rs Address some clippy lints 2019-12-23 14:11:01 -08:00
wasm-imports.js Add JS import which simulates infinite loop (to keep stderr open) 2019-04-02 19:39:53 -07:00

DreamMaker Language Server

This package is a language server implementation for DreamMaker, the scripting language of the BYOND game engine. All features are dependent on client support.

Code completion

  • Completes names of typepaths, procs, type vars, local vars, and macros.
  • Popup includes symbol type as well as the value of constants.
  • Completes var and proc overrides in type definitions.
    • Proc overrides include a stub which calls ..().

Hover

  • Shows inheritance information when hovering proc headers and type vars.

Go to definition

  • Finds the definition of typepaths, procs, type vars, local vars, and macros.
  • In some clients, integrates with DM Reference browser.
  • Searches macros, types, procs, and vars.
  • Prefix query with # to search macros only, var/ to search vars only, or proc/ to search procs only.
  • Include / in query to search types only.
  • In some clients, integrates with DM Reference browser.

Find all references

  • Finds all uses of:
    • Typepaths as a literal.
    • Procs, called and overridden.
    • Type vars, read, written, and overridden.

Diagnostics

Signature help

  • Gives proc argument help, including for builtin procs, when a ( is typed or on command.

Document symbols

  • Provides an "outline" view of symbols in the current file.