Awesome
Objeck LSP
LSP support for Objeck was incorporated into v6.0 (and futher releases). Diagnostic functionality (i.e. compiling code, finding symbols, code completion, etc.) is built in libraries that ship with the tool chain. The LSP server is standalone, written in Objeck and exposes STDIO and TCP interfaces. The backend handles client requests, formats responses and maintains the state of in-memory documents.
Please refer to the installation instructions (and issues reports) for editor support.
Work in the Queue
Reviving this effort to provide the following
- Clean up configuration options
Project/workspace build support for non-VSCode clientsBetter support for Sublime and other text editors (current implementation is based on message ordering from VSCode)STDIO support for Sublime and other text editors- Named pipe support for VSCode
Notifications
- Initialized
initialized
- Cancel Request
$/cancelRequest
- File Open
textDocument/didOpen
- File Changed
textDocument/didChange
- File Save
textDocument/didSave
- File Close
textDocument/didClose
Callbacks
- Initialize
initialize
- Code completion
textDocument/completion
- Code resolution
completionItem/resolve
- Code symbol
textDocument/documentSymbol
- Method/Function signature help
textDocument/signatureHelp
- Goto code references
textDocument/references
- Goto code definitions
textDocument/definition
- Goto code declaration
textDocument/declaration
- Variable rename
textDocument/rename
- Format document
textDocument/formatting
- Format selection
textDocument/rangeFormatting
- Editor shutdown
shutdown
Workspaces
- JSON configured workspaces to support multi-file projects
- Find symbol in workspace
workspace/symbol
- Watch file changed
workspace/didChangeWatchedFiles
- Watch workspace changed
workspace/didChangeWorkspaceFolders
Project Status
The server is functional but there is still work to do.
Functional
- Tested editors
- Visual Studio Code
- Sublime
- Kate
- Platform support
- Windows (AMD64)
- Linux (AMD64 and ARM64)
- macOS (AMD64 and ARM64)
- Multi-document support
- Project workspaces
- Code symbols
- Classes
- Enums
- Methods
- Finding references
- Variables
- Finding declarations
- Variables
- Methods and functions
- Finding definitions
- Variables (done)
- Classes and method (done)
- Keyword completion
- Variables
- Methods and functions
- Bundle documentation
- Quick Fixes
- Add 'use' a statment for an unqualfied class
- Qualfied an unqualfied class
Outstanding
- Test with Emacs on Linux