integrate with d2lsp completions
This commit is contained in:
parent
8d9bf98e59
commit
9e20ed816d
2 changed files with 35 additions and 0 deletions
|
|
@ -159,3 +159,37 @@ func Decode(args []js.Value) (interface{}, error) {
|
||||||
func GetVersion(args []js.Value) (interface{}, error) {
|
func GetVersion(args []js.Value) (interface{}, error) {
|
||||||
return version.Version, nil
|
return version.Version, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetCompletions(args []js.Value) (interface{}, error) {
|
||||||
|
if len(args) < 3 {
|
||||||
|
return nil, &WASMError{Message: "missing required arguments", Code: 400}
|
||||||
|
}
|
||||||
|
|
||||||
|
text := args[0].String()
|
||||||
|
line := args[1].Int()
|
||||||
|
column := args[2].Int()
|
||||||
|
|
||||||
|
completions, err := d2lsp.GetCompletionItems(text, line, column)
|
||||||
|
if err != nil {
|
||||||
|
return nil, &WASMError{Message: err.Error(), Code: 500}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert to map for JSON serialization
|
||||||
|
items := make([]map[string]interface{}, len(completions))
|
||||||
|
for i, completion := range completions {
|
||||||
|
items[i] = map[string]interface{}{
|
||||||
|
"label": completion.Label,
|
||||||
|
"kind": int(completion.Kind),
|
||||||
|
"detail": completion.Detail,
|
||||||
|
"insertText": completion.InsertText,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return CompletionResponse{
|
||||||
|
Items: items,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type CompletionResponse struct {
|
||||||
|
Items []map[string]interface{} `json:"items"`
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ import (
|
||||||
func main() {
|
func main() {
|
||||||
api := d2wasm.NewD2API()
|
api := d2wasm.NewD2API()
|
||||||
|
|
||||||
|
api.Register("getCompletions", d2wasm.GetCompletions)
|
||||||
api.Register("getParentID", d2wasm.GetParentID)
|
api.Register("getParentID", d2wasm.GetParentID)
|
||||||
api.Register("getObjOrder", d2wasm.GetObjOrder)
|
api.Register("getObjOrder", d2wasm.GetObjOrder)
|
||||||
api.Register("getRefRanges", d2wasm.GetRefRanges)
|
api.Register("getRefRanges", d2wasm.GetRefRanges)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue