pragmagic / vscode-nim

An extension for VS Code which provides support for the Nim language.
Other
237 stars 37 forks source link

Regression: Cannot compile nimsuggest #28

Closed yglukhov closed 7 years ago

yglukhov commented 7 years ago

After latest update VSCode starts with warning "Cannot compile nimsuggest. See console log for details". Platform: macos sierra. Console log:

[Extension Host] /Users/yglukhov/.vscode/extensions/kosz78.nim-0.5.12
//Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/workbench.main.js:121 [Extension Host] Error: Command failed: "/Users/yglukhov/Projects/nim/bin/nim" c -d:release --path:"/Users/yglukhov/Projects/nim" nimsuggest.nim
Hint: used config file '/Users/yglukhov/Projects/nim/config/nim.cfg' [Conf]
Hint: used config file '/Users/yglukhov/.vscode/extensions/kosz78.nim-0.5.12/nimsuggest/nimsuggest.nim.cfg' [Conf]
Hint: system [Processing]
Hint: nimsuggest [Processing]
Hint: strutils [Processing]
Hint: parseutils [Processing]
Hint: math [Processing]
Hint: algorithm [Processing]
Hint: os [Processing]
Hint: times [Processing]
Hint: posix [Processing]
Hint: parseopt [Processing]
Hint: sequtils [Processing]
Hint: net [Processing]
Hint: nativesockets [Processing]
Hint: sets [Processing]
Hint: hashes [Processing]
Hint: etcpriv [Processing]
Hint: rdstdin [Processing]
Hint: linenoise [Processing]
Hint: termios [Processing]
Hint: sexp [Processing]
Hint: lexbase [Processing]
Hint: streams [Processing]
Hint: unicode [Processing]
Hint: macros [Processing]
Hint: options [Processing]
Hint: lists [Processing]
Hint: strtabs [Processing]
Hint: osproc [Processing]
Hint: cpuinfo [Processing]
Hint: kqueue [Processing]
Hint: commands [Processing]
Hint: msgs [Processing]
Hint: tables [Processing]
Hint: ropes [Processing]
Hint: platform [Processing]
Hint: terminal [Processing]
Hint: nversion [Processing]
Hint: condsyms [Processing]
Hint: idents [Processing]
Hint: wordrecg [Processing]
Hint: extccomp [Processing]
Hint: securehash [Processing]
Hint: debuginfo [Processing]
Hint: marshal [Processing]
Hint: typeinfo [Processing]
Hint: json [Processing]
Hint: intsets [Processing]
Hint: nimblecmd [Processing]
Hint: modules [Processing]
Hint: ast [Processing]
Hint: idgen [Processing]
Hint: astalgo [Processing]
Hint: rodutils [Processing]
Hint: magicsys [Processing]
Hint: rodread [Processing]
Hint: types [Processing]
Hint: trees [Processing]
Hint: lexer [Processing]
Hint: nimlexbase [Processing]
Hint: llstream [Processing]
Hint: renderer [Processing]
Hint: memfiles [Processing]
Hint: cgendata [Processing]
Hint: passes [Processing]
Hint: nimsets [Processing]
Hint: bitsets [Processing]
Hint: syntaxes [Processing]
Hint: parser [Processing]
Hint: pbraces [Processing]
Hint: filters [Processing]
Hint: filter_tmpl [Processing]
Hint: modulegraphs [Processing]
Hint: sigmatch [Processing]
Hint: semdata [Processing]
Hint: treetab [Processing]
Hint: vmdef [Processing]
Hint: lookups [Processing]
Hint: prettybase [Processing]
Hint: semtypinst [Processing]
Hint: parampatterns [Processing]
Hint: pretty [Processing]
Hint: docgen [Processing]
Hint: rstast [Processing]
Hint: rst [Processing]
Hint: rstgen [Processing]
Hint: highlite [Processing]
Hint: importer [Processing]
Hint: sempass2 [Processing]
Hint: guards [Processing]
Hint: saturate [Processing]
Hint: writetracking [Processing]
Hint: xmltree [Processing]
Hint: cgi [Processing]
Hint: cookies [Processing]
Hint: typesrenderer [Processing]
Hint: sem [Processing]
Hint: semfold [Processing]
Hint: procfind [Processing]
Hint: pragmas [Processing]
Hint: transf [Processing]
Hint: cgmeth [Processing]
Hint: lambdalifting [Processing]
Hint: lowerings [Processing]
Hint: vm [Processing]
Hint: vmgen [Processing]
Hint: vmdeps [Processing]
Hint: vmmarshal [Processing]
Hint: evaltempl [Processing]
Hint: aliases [Processing]
Hint: patterns [Processing]
Hint: semmacrosanity [Processing]
Hint: semparallel [Processing]
Hint: pluginsupport [Processing]
Hint: active [Processing]
Hint: locals [Processing]
Hint: itersgen [Processing]
Hint: passaux [Processing]
Hint: nimconf [Processing]
Hint: scriptconfig [Processing]
nimsuggest.nim(127, 11) Error: undeclared identifier: 'getModule'

    at ChildProcess.exithandler (child_process.js:218:12)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:877:16)
    at Socket.<anonymous> (internal/child_process.js:334:11)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at Pipe._handle.close [as _onclose] (net.js:493:12)
oderwat commented 7 years ago

I just copied the actual nimsuggest code from the nim tools directory to the extension and it seems to work :). I already said that I don't think it is a good solution to have nimsuggest embedded with the vscode extension.

EDIT: After looking at the last changes in master of the extension it may work if you have the nimsuggest executable in the same directory as the compiler (I would prefer if it checked to have it in the path though).

kosz78 commented 7 years ago

@oderwat nimsuggest was added to nim compiler in development builds, I have updated the extension to support nimsuggest binary from nim compiler, the embedded version of nimsuggest is used for backward compatibility only. When you use the latest nim compiler from sources you need build nim tools like koch tools -d:release