Skip to content

Commit

Permalink
Add hover
Browse files Browse the repository at this point in the history
  • Loading branch information
mickael-menu committed Apr 4, 2021
1 parent ce41efd commit ba909db
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 1 deletion.
42 changes: 41 additions & 1 deletion adapter/lsp/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package lsp

import (
"fmt"
"io/ioutil"
"net/url"
"path/filepath"
"strings"
Expand Down Expand Up @@ -186,7 +187,46 @@ func NewServer(opts ServerOpts) *Server {
}

handler.TextDocumentHover = func(context *glsp.Context, params *protocol.HoverParams) (*protocol.Hover, error) {
return nil, nil
doc, ok := server.documents[params.TextDocument.URI]
if !ok {
return nil, nil
}

zk, err := server.container.Zk()
if err != nil {
return nil, err
}

db, _, err := server.container.Database(false)
if err != nil {
return nil, err
}

var target string
err = db.WithTransaction(func(tx sqlite.Transaction) error {
finder := sqlite.NewNoteDAO(tx, server.container.Logger)
link, err := doc.DocumentLinkAt(params.Position)
if link == nil || err != nil {
return err
}
target, err = server.targetForHref(link.Href, zk.Path, finder)
return err
})
if err != nil || target == "" || strutil.IsURL(target) {
return nil, err
}
target = strings.TrimPrefix(target, "file://")
contents, err := ioutil.ReadFile(target)
if err != nil {
return nil, err
}

return &protocol.Hover{
Contents: protocol.MarkupContent{
Kind: protocol.MarkupKindMarkdown,
Value: string(contents),
},
}, nil
}

handler.TextDocumentDocumentLink = func(context *glsp.Context, params *protocol.DocumentLinkParams) ([]protocol.DocumentLink, error) {
Expand Down
2 changes: 2 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -510,6 +510,8 @@ github.com/tj/assert v0.0.0-20190920132354-ee03d75cd160 h1:NSWpaDaurcAJY7PkL8Xt0
github.com/tj/assert v0.0.0-20190920132354-ee03d75cd160/go.mod h1:mZ9/Rh9oLWpLLDRpvE+3b7gP/C2YyLFYxNmcLnPTMe0=
github.com/tj/go-naturaldate v1.3.0 h1:OgJIPkR/Jk4bFMBLbxZ8w+QUxwjqSvzd9x+yXocY4RI=
github.com/tj/go-naturaldate v1.3.0/go.mod h1:rpUbjivDKiS1BlfMGc2qUKNZ/yxgthOfmytQs8d8hKk=
github.com/tliron/glsp v0.0.0-20210308190902-c7ec7df19257 h1:EIMeclnZjLgYIUs06pWOo+wIuOji9Q4Qz0MaU3va198=
github.com/tliron/glsp v0.0.0-20210308190902-c7ec7df19257/go.mod h1:ouzTGvQteTU4hdsG+32vIx0if7E9CzMa64d7tYJJ91g=
github.com/tliron/kutil v0.1.22 h1:VnwZ6YlTao2ISmm9wdv8CnVy5BjROBPpG65qIRc1LtE=
github.com/tliron/kutil v0.1.22/go.mod h1:HkG4xQS2/BHI8EO9WfdOwnlUil7NhY/wmiV7U1uwEYw=
github.com/tliron/yamlkeys v1.3.5/go.mod h1:8kJ1A/1s3p/I3MQUAbtv72dPEyQGoh0ZkQp0UAkABBo=
Expand Down

0 comments on commit ba909db

Please sign in to comment.