From 7d26750eaccba833740debde1f0f03635f345d94 Mon Sep 17 00:00:00 2001 From: tjex Date: Sat, 10 Feb 2024 19:55:14 +0100 Subject: [PATCH] fix if statement logic --- internal/adapter/lsp/document.go | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/internal/adapter/lsp/document.go b/internal/adapter/lsp/document.go index 1b184a3..9285470 100644 --- a/internal/adapter/lsp/document.go +++ b/internal/adapter/lsp/document.go @@ -7,12 +7,12 @@ import ( "strings" "unicode/utf16" + "github.com/tliron/glsp" + protocol "github.com/tliron/glsp/protocol_3_16" "github.com/zk-org/zk/internal/core" "github.com/zk-org/zk/internal/util" "github.com/zk-org/zk/internal/util/errors" strutil "github.com/zk-org/zk/internal/util/strings" - "github.com/tliron/glsp" - protocol "github.com/tliron/glsp/protocol_3_16" ) // documentStore holds opened documents. @@ -228,24 +228,25 @@ func (d *document) DocumentLinks() ([]documentLink, error) { }) } - // extract link paths from [title](path) patterns - for _, match := range - markdownLinkRegex.FindAllStringSubmatchIndex(line, -1) { - // case: '!' ignores embedded image, e.g. ![title](href.png) - // case: '/' ignores tripple dash file URIs, e.g. file:///file.go - if match[0] > 0 && line[match[0]-1] == '!' || line[match[3]+8] == '/' { + // extract link paths from [title](path) patterns + for _, match := range markdownLinkRegex.FindAllStringSubmatchIndex(line, -1) { + // Ignore embedded images ![title](file.png) and tripple dash file + // URIs [title](file:///file.go) + if (match[0] > 0 && line[match[0]-1] == '!') || + (match[0] > 0 && line[match[3]+8] == '/') { continue } href := line[match[4]:match[5]] - // Valid Markdown links are percent-encoded. + + // Decode the href if it's percent-encoded if decodedHref, err := url.PathUnescape(href); err == nil { href = decodedHref } + appendLink(href, match[0], match[1], false, false) } - for _, match := range wikiLinkRegex.FindAllStringSubmatchIndex(line, -1) { href := line[match[2]:match[3]] hasTitle := match[4] != -1