SpacemanDMM/crates/dm-langserver
ZeWaka d19602a6f0
Change the hasher used for HashMap/Sets (#414)
I chose to use
[foldhash](https://docs.rs/foldhash/0.1.3/foldhash/index.html) since
we're not needing cryptographically secure hashing, nor are we concerned
with people reverse-engineering application state.

Basically just changing the RandomState or the HashMap/Set import
everywhere. The *Ext types provide the `::new()` interface.

Tested dm-langserver, all works well:

![image](https://github.com/user-attachments/assets/957e9db8-eb99-4970-82e0-a3ca1434e178)
2024-11-08 17:49:06 -08:00
..
src Change the hasher used for HashMap/Sets (#414) 2024-11-08 17:49:06 -08:00
build.rs Run cargo upgrade (#413) 2024-10-26 22:31:05 -07:00
Cargo.toml Change the hasher used for HashMap/Sets (#414) 2024-11-08 17:49:06 -08:00
README.md Fix a missed secure.byond.com reference 2023-04-20 17:10:59 -07:00
wasm-imports.js Rename src/ to crates/, match directories to package names 2021-11-16 17:51:02 -08: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.