From 35eae17f4fb01945b0324b9e7cfb36704974b80c Mon Sep 17 00:00:00 2001 From: Lazar Bulovan Date: Thu, 19 Feb 2026 18:01:30 +0100 Subject: [PATCH] feat(lsp): add goto declaration for FB, DB, and UDT types - Add declaration provider (gD) that finds definitions for: - Functions in .scl files - Function Blocks (FB) in .scl files - Data Blocks (DB) in .scl and .db files - User-Defined Types (UDT) in .scl and .udt files - Implement project root detection for cross-directory searches - Add duplicate location filtering to prevent multiple results - Load UDT types from .udt files in plc_json - Update documentation with goto declaration feature --- AGENTS.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index d0c9551..1fbea2f 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -235,6 +235,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