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.
40 41 42 43 44 45 46 |
# File 'lib/daytona/lsp_server.rb', line 40 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)
24 25 26 |
# File 'lib/daytona/lsp_server.rb', line 24 def language_id @language_id end |
#path_to_project ⇒ String (readonly)
27 28 29 |
# File 'lib/daytona/lsp_server.rb', line 27 def path_to_project @path_to_project end |
#sandbox_id ⇒ String (readonly)
33 34 35 |
# File 'lib/daytona/lsp_server.rb', line 33 def sandbox_id @sandbox_id end |
#toolbox_api ⇒ DaytonaToolboxApiClient::LspApi (readonly)
30 31 32 |
# File 'lib/daytona/lsp_server.rb', line 30 def toolbox_api @toolbox_api end |
Instance Method Details
#completions(path:, position:) ⇒ DaytonaApiClient::CompletionList
Gets completion suggestions at a position in a file
53 54 55 56 57 58 59 60 61 62 |
# File 'lib/daytona/lsp_server.rb', line 53 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.
70 71 72 73 74 |
# File 'lib/daytona/lsp_server.rb', line 70 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.
83 84 85 86 87 |
# File 'lib/daytona/lsp_server.rb', line 83 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.
93 |
# File 'lib/daytona/lsp_server.rb', line 93 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.
100 |
# File 'lib/daytona/lsp_server.rb', line 100 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.
107 108 109 110 111 |
# File 'lib/daytona/lsp_server.rb', line 107 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.
118 119 120 121 122 |
# File 'lib/daytona/lsp_server.rb', line 118 def stop toolbox_api.stop( DaytonaToolboxApiClient::LspServerRequest.new(language_id:, path_to_project:) ) end |