Merge branch 'master' of github.com:Araq/Nimrod

This commit is contained in:
Araq
2013-08-08 21:11:20 +02:00
4 changed files with 21 additions and 8 deletions

View File

@@ -210,7 +210,11 @@ proc CommandSuggest =
msgs.gErrorMax = high(int) # do not stop after first error
semanticPasses()
rodPass()
compileProject()
# XXX: this handles the case when the dirty buffer is the main file,
# but doesn't handle the case when it's imported module
var projFile = if gProjectMainIdx == gDirtyOriginalIdx: gDirtyBufferIdx
else: gProjectMainIdx
compileProject(projFile)
proc wantMainModule =
if gProjectFull.len == 0:

View File

@@ -413,7 +413,7 @@ type
TFileInfo*{.final.} = object
fullPath*: string # This is a canonical full filesystem path
projPath*: string # This is relative to the project's root
shortName*: string # short name of the module
quotedName*: PRope # cached quoted short name for codegen
# purpoes
@@ -473,7 +473,9 @@ proc newFileInfo(fullPath, projPath: string): TFileInfo =
#shallow(result.fullPath)
result.projPath = projPath
#shallow(result.projPath)
result.quotedName = projPath.extractFilename.makeCString
let fileName = projPath.extractFilename
result.shortName = fileName.changeFileExt("")
result.quotedName = fileName.makeCString
if optEmbedOrigSrc in gGlobalOptions or true:
result.lines = @[]

View File

@@ -22,6 +22,12 @@ const
#template sectionSuggest(): expr = "##begin\n" & getStackTrace() & "##end\n"
proc origModuleName(m: PSym): string =
result = if m.position == gDirtyBufferIdx:
fileInfos[gDirtyOriginalIdx].shortName
else:
m.name.s
proc SymToStr(s: PSym, isLocal: bool, section: string, li: TLineInfo): string =
result = section
result.add(sep)
@@ -31,9 +37,9 @@ proc SymToStr(s: PSym, isLocal: bool, section: string, li: TLineInfo): string =
let ow = s.owner
if ow.kind != skModule and ow.owner != nil:
let ow2 = ow.owner
result.add(ow2.name.s)
result.add(ow2.origModuleName)
result.add('.')
result.add(ow.name.s)
result.add(ow.origModuleName)
result.add('.')
result.add(s.name.s)
result.add(sep)

View File

@@ -2,7 +2,8 @@ completion_dot_syntax_main.nim
> idetools --track:$TESTNIM,24,15 --def
def\tskProc\t$MODULE.echoRemainingDollars
> idetools --trackDirty:completion_dot_syntax_dirty.nim,$TESTNIM,25,12 --suggest
sug\tskProc\tcompletion_dot_syntax_dirty.echoRemainingDollars
sug\tskProc\techoRemainingDollars
# The suggestion should not mention the other echoRemaining* variants.
!sug\tskProc\tcompletion_dot_syntax_dirty.echoRemainingEuros
!sug\tskProc\tcompletion_dot_syntax_dirty.echoRemainingBugs
!echoRemainingEuros
!echoRemainingBugs