diff --git a/AGENTS.md b/AGENTS.md index d0c9551..8e6c0d9 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -50,6 +50,18 @@ scl_lsp/ └── grammar.js # Tree-sitter grammar ``` +## Filetype Detection + +The LSP requires the `scl` filetype to be set. Add to your Neovim config (e.g., `ftdetect/scl.vim`): + +```vim +au BufRead,BufNewFile *.scl set filetype=scl +au BufRead,BufNewFile *.udt set filetype=scl +au BufRead,BufNewFile *.db set filetype=scl +``` + +This enables LSP features (completion, goto definition, hover, etc.) for all SCL-related file types. + ## Code Style Guidelines ### Module Pattern @@ -235,6 +247,17 @@ Rules are checked in order; first match wins. | `:SCLExpandAllAttrBlocks` | Expand all `{...}` blocks in buffer | | `:SCLCollapseAllAttrBlocks` | Collapse all matching attribute blocks | +## LSP Features + +### Goto Declaration (`gD`) +The LSP supports goto declaration functionality for: +- **Functions** - Jump to function definition in `.scl` files +- **Function Blocks (FB)** - Jump to FB definition in `.scl` files +- **Data Blocks (DB)** - Jump to DB definition in `.scl` and `.db` files +- **User-Defined Types (UDT)** - Jump to type definition in `.scl` and `.udt` files + +Usage: Place cursor on a variable or type name and press `gD` (or use LSP client command). + ## Keybindings (SCL/UDT files) ### Attribute Block Toggle diff --git a/README.md b/README.md index 18e59e0..46ee012 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ A comprehensive Neovim/LazyVim plugin providing **Language Server Protocol (LSP) |---------|-------------| | **Hover** | Press `K` to see variable type and struct fields | | **Completion** | `#` for variables, `.` for struct fields, `(` for functions | -| **Go to Definition** | `gd` jump to variable declaration | +| **Go to Definition** | `gD` jump to function, FB, DB, or UDT definition | | **Document Symbols** | Shows functions, variables, types | | **Workspace Symbols** | Search across all `.scl` files with fuzzy matching | | **Semantic Tokens** | Keywords, variables highlighted |