1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//! This Module handles IDE Specific Logic (eg. Highlights, auto completion, code actions)

/// Handles all sorts of Code actions.
///
/// Each function handles a different kind of error. They can also be combined for more flexibility
pub mod actions;
/// Handle color highlighting for IDEs
///
/// Syntax highlight happens in here
/// we mainly use tree-sitter queries to extract token and serialize them
/// according to the lsp spec
/// TODO make use of incremental parsing and updates
/// this is fast enough for medium sized files but sinks at huge files
pub mod color;
/// Handle Completion and code suggestions for IDEs
///
/// All things completion related happen in here, the process is roughly as follows:
/// 1. Find the current context using the latest draft and editor position
/// 2. Find good completions in this context
///
/// The completion context includes:
///  - Meta information on the cursor position eg. Are we currently in a path or an empty line etc.
///  - The semantic context eg. do we need a constraint or a number
///  - A optional path prefix and suffix. The suffix is used as a weight for completions using the jaro
///    winkler distance, the prefix is a filter restricting possible completions.
///
///  To weigh completions we use a simple weight function with hand picked weights for parameters
///  like length or type correctness
///
pub mod completion;
/// Inlay hints are used to display the configuration in the source code view.
///
/// Inlays are managed as a global token state,
/// there can only be 1 inlay source to keep things simple,
/// inlays are computed asynchronously. Both configurations
/// and webview can provide them as a SMT-Model
pub mod inlays;
/// handles text jumps, like go to definition etc
pub mod location;