mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 17:04:41 +00:00
nimsuggest: added 'dus' command that combines 'def' and 'use'
This commit is contained in:
@@ -86,7 +86,7 @@ type # please make sure we have under 32 options
|
||||
gcNone, gcBoehm, gcGo, gcMarkAndSweep, gcRefc, gcV2, gcGenerational
|
||||
|
||||
IdeCmd* = enum
|
||||
ideNone, ideSug, ideCon, ideDef, ideUse
|
||||
ideNone, ideSug, ideCon, ideDef, ideUse, ideDus
|
||||
|
||||
var
|
||||
gIdeCmd*: IdeCmd
|
||||
@@ -421,6 +421,7 @@ proc parseIdeCmd*(s: string): IdeCmd =
|
||||
of "con": ideCon
|
||||
of "def": ideDef
|
||||
of "use": ideUse
|
||||
of "dus": ideDus
|
||||
else: ideNone
|
||||
|
||||
proc `$`*(c: IdeCmd): string =
|
||||
@@ -429,4 +430,5 @@ proc `$`*(c: IdeCmd): string =
|
||||
of ideCon: "con"
|
||||
of ideDef: "def"
|
||||
of ideUse: "use"
|
||||
of ideDus: "dus"
|
||||
of ideNone: "none"
|
||||
|
||||
@@ -309,6 +309,10 @@ proc suggestSym*(info: TLineInfo; s: PSym) {.inline.} =
|
||||
findUsages(info, s)
|
||||
elif gIdeCmd == ideDef:
|
||||
findDefinition(info, s)
|
||||
elif gIdeCmd == ideDus and s != nil:
|
||||
if isTracked(info, s.name.s.len):
|
||||
suggestResult(symToSuggest(s, isLocal=false, $ideDef))
|
||||
findUsages(info, s)
|
||||
|
||||
proc markUsed(info: TLineInfo; s: PSym) =
|
||||
incl(s.flags, sfUsed)
|
||||
@@ -366,7 +370,7 @@ proc suggestExpr*(c: PContext, node: PNode) =
|
||||
suggestCall(c, a, n, outputs)
|
||||
|
||||
dec(c.compilesContextId)
|
||||
if outputs > 0 and gIdeCmd != ideUse: suggestQuit()
|
||||
if outputs > 0 and gIdeCmd notin {ideUse, ideDus}: suggestQuit()
|
||||
|
||||
proc suggestStmt*(c: PContext, n: PNode) =
|
||||
suggestExpr(c, n)
|
||||
|
||||
Reference in New Issue
Block a user