Language Server powered by the Slither static analyzer
Project description
Slither Language Server
How to install
Run the following command from the project root directory (preferably inside a Python virtual environment):
python -m pip install .
Features
- Go to implementations/definitions
- Find all references
- Show call hierarchy
- Show type hierarchy
- View and filter detector results
Adding new features
New request handlers should be registered in the constructor of SlitherServer
. Please note that in order to keep the conceptual load to a minimum, handlers should not be declared directly in the SlitherServer
class itself. Instead, related handlers should be declared in a separate module. See goto_def_impl_refs.py
as an example.
The Slither Language Server uses pygls
as the LSP implementation, and you should refer to its documentation when writing new handlers.
If you're adding an handler for a standard LSP feature, there will be no need to do anything on the VSCode extension side: VSCode will automatically hook its commands to use the provided feature.
If, on the other hand, the feature you're trying to add does not map to a standard LSP feature, you will need to register a custom handler. See $/slither/analyze
as an example: note how each request name is prefixed with $/slither/
. You will need to manually send request from the VSCode extension in order to trigger these handlers.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for slither_lsp-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc0e47255b167946aa9820592fb374fb4f9fa628c5b4d0ff0de59571babff980 |
|
MD5 | 6545ce0182975b422350fa4ab3b4ef05 |
|
BLAKE2b-256 | 0ab6b80eed5cae588ec4bfed6d8f108242f6a9d2afd40a60620e0109513ef991 |