summaryrefslogtreecommitdiff
path: root/internal/lsp/handlers_execute.go
blob: 2e3ec52e20954378216ea1dea10a51d67a25f512 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
// Summary: ExecuteCommand handler to support post-edit navigation (jump to generated test).
package lsp

import (
    "encoding/json"
)

func (s *Server) handleExecuteCommand(req Request) {
    var p ExecuteCommandParams
    if err := json.Unmarshal(req.Params, &p); err != nil {
        s.reply(req.ID, nil, nil)
        return
    }
    switch p.Command {
    case "hexai.showDocument":
        if len(p.Arguments) >= 2 {
            uri, _ := p.Arguments[0].(string)
            var r Range
            // Convert second arg to Range via re-marshal to be robust across clients
            if b, err := json.Marshal(p.Arguments[1]); err == nil {
                _ = json.Unmarshal(b, &r)
            }
            if uri != "" {
                s.clientShowDocument(uri, &r)
            }
        }
        s.reply(req.ID, nil, nil)
        return
    default:
        // Unknown command; no-op
        s.reply(req.ID, nil, nil)
        return
    }
}