Fix nimsuggest highlight for import statements (#23263)

Currently, I don't have syntax highlighting (+ no/wrong
jump-to-definition) for some import statement forms, namely:

- `import module/name/with/(slashes)`
- `import (mod) as alias`
- `import basemod/[ (sub1), (sub2) ]`

With this patch, highlight/def will work for the regions indicated by
parentheses.
This commit is contained in:
autumngray
2024-03-03 16:05:11 +01:00
committed by GitHub
parent aa30233ea7
commit 15577043e8
2 changed files with 21 additions and 1 deletions

View File

@@ -307,7 +307,15 @@ proc myImportModule(c: PContext, n: var PNode, importStmtResult: PNode): PSym =
if belongsToStdlib(c.graph, result) and not startsWith(moduleName, stdPrefix) and
not startsWith(moduleName, "system/") and not startsWith(moduleName, "packages/"):
message(c.config, n.info, warnStdPrefix, realModule.name.s)
suggestSym(c.graph, n.info, result, c.graph.usageSym, false)
proc suggestMod(n: PNode; s: PSym) =
if n.kind == nkImportAs:
suggestMod(n[0], realModule)
elif n.kind == nkInfix:
suggestMod(n[2], s)
else:
suggestSym(c.graph, n.info, s, c.graph.usageSym, false)
suggestMod(n, result)
importStmtResult.add newSymNode(result, n.info)
#newStrNode(toFullPath(c.config, f), n.info)
else:

View File

@@ -0,0 +1,12 @@
import std/paths
import json as J
import std/[os,streams]#[!]#
discard """
$nimsuggest --tester $file
>highlight $1
highlight;;skModule;;1;;11;;5
highlight;;skModule;;2;;7;;4
highlight;;skModule;;3;;12;;2
highlight;;skModule;;3;;15;;7
"""