Class: Daytona::LspServer
- Inherits:
-
Object
- Object
- Daytona::LspServer
- Includes:
- Instrumentation
- Defined in:
- lib/daytona/lsp_server.rb
Defined Under Namespace
Modules: Language Classes: Position
Instance Attribute Summary collapse
- #language_id ⇒ Symbol readonly
- #path_to_project ⇒ String readonly
- #sandbox_id ⇒ String readonly
- #toolbox_api ⇒ DaytonaToolboxApiClient::LspApi readonly
Instance Method Summary collapse
-
#completions(path:, position:) ⇒ DaytonaApiClient::CompletionList
Gets completion suggestions at a position in a file.
-
#did_close(path) ⇒ void
Notify the language server that a file has been closed.
-
#did_open(path) ⇒ void
Notifies the language server that a file has been opened.
-
#document_symbols(path) ⇒ Array<DaytonaToolboxApiClient::LspSymbol]
Gets symbol information (functions, classes, variables, etc.) from a document.
-
#initialize(language_id:, path_to_project:, toolbox_api:, sandbox_id:, otel_state: nil) ⇒ LspServer
constructor
A new instance of LspServer.
-
#sandbox_symbols(query) ⇒ Array<DaytonaToolboxApiClient::LspSymbol]
Searches for symbols matching the query string across all files in the Sandbox.
-
#start ⇒ void
Starts the language server.
-
#stop ⇒ void
Stops the language server.
Methods included from Instrumentation
Constructor Details
#initialize(language_id:, path_to_project:, toolbox_api:, sandbox_id:, otel_state: nil) ⇒ LspServer
Returns a new instance of LspServer.
37 38 39 40 41 42 43 |
# File 'lib/daytona/lsp_server.rb', line 37 def initialize(language_id:, path_to_project:, toolbox_api:, sandbox_id:, otel_state: nil) @language_id = language_id @path_to_project = path_to_project @toolbox_api = toolbox_api @sandbox_id = sandbox_id @otel_state = otel_state end |
Instance Attribute Details
#language_id ⇒ Symbol (readonly)
21 22 23 |
# File 'lib/daytona/lsp_server.rb', line 21 def language_id @language_id end |
#path_to_project ⇒ String (readonly)
24 25 26 |
# File 'lib/daytona/lsp_server.rb', line 24 def path_to_project @path_to_project end |
#sandbox_id ⇒ String (readonly)
30 31 32 |
# File 'lib/daytona/lsp_server.rb', line 30 def sandbox_id @sandbox_id end |
#toolbox_api ⇒ DaytonaToolboxApiClient::LspApi (readonly)
27 28 29 |
# File 'lib/daytona/lsp_server.rb', line 27 def toolbox_api @toolbox_api end |
Instance Method Details
#completions(path:, position:) ⇒ DaytonaApiClient::CompletionList
Gets completion suggestions at a position in a file
50 51 52 53 54 55 56 57 58 59 |
# File 'lib/daytona/lsp_server.rb', line 50 def completions(path:, position:) toolbox_api.completions( DaytonaToolboxApiClient::LspCompletionParams.new( language_id:, path_to_project:, uri: uri(path), position: DaytonaApiClient::Position.new(line: position.line, character: position.character) ) ) end |
#did_close(path) ⇒ void
This method returns an undefined value.
Notify the language server that a file has been closed. This method should be called when a file is closed in the editor to allow the language server to clean up any resources associated with that file.
67 68 69 70 71 |
# File 'lib/daytona/lsp_server.rb', line 67 def did_close(path) toolbox_api.did_close( DaytonaToolboxApiClient::LspDocumentRequest.new(language_id:, path_to_project:, uri: uri(path)) ) end |
#did_open(path) ⇒ void
This method returns an undefined value.
Notifies the language server that a file has been opened. This method should be called when a file is opened in the editor to enable language features like diagnostics and completions for that file. The server will begin tracking the file’s contents and providing language features.
80 81 82 83 84 |
# File 'lib/daytona/lsp_server.rb', line 80 def did_open(path) toolbox_api.did_open( DaytonaToolboxApiClient::LspDocumentRequest.new(language_id:, path_to_project:, uri: uri(path)) ) end |
#document_symbols(path) ⇒ Array<DaytonaToolboxApiClient::LspSymbol]
Gets symbol information (functions, classes, variables, etc.) from a document.
90 |
# File 'lib/daytona/lsp_server.rb', line 90 def document_symbols(path) = toolbox_api.document_symbols(language_id, path_to_project, uri(path)) |
#sandbox_symbols(query) ⇒ Array<DaytonaToolboxApiClient::LspSymbol]
Searches for symbols matching the query string across all files in the Sandbox.
97 |
# File 'lib/daytona/lsp_server.rb', line 97 def sandbox_symbols(query) = toolbox_api.workspace_symbols(query, language_id, path_to_project) |
#start ⇒ void
This method returns an undefined value.
Starts the language server. This method must be called before using any other LSP functionality. It initializes the language server for the specified language and project.
104 105 106 107 108 |
# File 'lib/daytona/lsp_server.rb', line 104 def start toolbox_api.start( DaytonaToolboxApiClient::LspServerRequest.new(language_id:, path_to_project:) ) end |
#stop ⇒ void
This method returns an undefined value.
Stops the language server. This method should be called when the LSP server is no longer needed to free up system resources.
115 116 117 118 119 |
# File 'lib/daytona/lsp_server.rb', line 115 def stop toolbox_api.stop( DaytonaToolboxApiClient::LspServerRequest.new(language_id:, path_to_project:) ) end |