Class: RubynCode::IDE::Handlers::AcceptEditHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/rubyn_code/ide/handlers/accept_edit_handler.rb

Overview

Handles the “acceptEdit” JSON-RPC request.

The extension sends this after the user accepts or rejects a proposed file edit surfaced via a file/edit or file/create notification. All pending-edit state lives in the per-session ToolOutput adapter; this handler is a thin delegate so the server has something to register at the method name.

Instance Method Summary collapse

Constructor Details

#initialize(server) ⇒ AcceptEditHandler

Returns a new instance of AcceptEditHandler.



14
15
16
# File 'lib/rubyn_code/ide/handlers/accept_edit_handler.rb', line 14

def initialize(server)
  @server = server
end

Instance Method Details

#call(params) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/rubyn_code/ide/handlers/accept_edit_handler.rb', line 18

def call(params)
  edit_id  = params['editId']
  accepted = params['accepted']

  return { 'applied' => false, 'error' => 'Missing editId' } unless edit_id

  adapter = @server.tool_output_adapter
  return { 'applied' => false, 'error' => 'No active session' } unless adapter

  resolved = adapter.resolve_edit(edit_id, accepted ? true : false)
  return { 'applied' => false, 'error' => "No pending edit: #{edit_id}" } unless resolved

  { 'applied' => accepted ? true : false }
end