Skip to content

Latest commit

 

History

History
88 lines (45 loc) · 2.5 KB

lsp-features.md

File metadata and controls

88 lines (45 loc) · 2.5 KB

All these examples are recorded using Visual Studio Code as a client for the language server. As everything is implemented using endpoints from the Language Server Protocol (LSP) these features are available to all editors that support the needed API.

Analyzing as you type

analyzing_as_you_type

Diagnostics get updated on the fly as you type

Hover documentation

variable_hover module_hover

Hovering over variables and modules takes documentation that is written as comments into account

Hovering is also implemented for system functions and variables:

systemfunction_hover

Code completion

code_completion

Code completion that tells you where variables come from, what type they are, array dimensions and much more

Signature help

signature_help

Get signature help for calling external modules, including the documentation of the module and the parameter with their documentation.

Go-to definition

goto_definition

Go-to definition for modules, variables and subroutines

Find references

find_references

Find references for variables and modules (modules being in prototype state)

Rename refactoring

rename_refactoring

Renaming of variables and subroutines

Quickfixes

quickfixes

Many builtin diagnostics already include quickfixes

Some of them do more than one modification:

extensive_quickfix

Suggest USING

suggest_using

Which Natural developer never forgot to add a using when copy pasting code?

Extensive Snippets

extensive_snippets

Define snippets which depend on variables of usings which get added on the fly (if not already present)

Outline

outline

Get a quick overview of a module with the outline

Document symbols

document_symbols

Quickly navigate through symbols in the current module

Workspace symbols

workspace_symbols

Quickly find modules by their referable name