noseglid / atom-build

:hammer: Build your project directly from the Atom editor
https://atom.io/packages/build
MIT License
248 stars 97 forks source link

Path must be string. Received undefined. #494

Closed abid-mujtaba closed 7 years ago

abid-mujtaba commented 7 years ago

Trying to use the 'errorMatch' feature while compiling a LaTeX project using 'cmd: scons'. Compilation works perfectly but I get the following error:

[Enter steps to reproduce below:]

  1. Set errorMatch config as follows:
cmd: scons
errorMatch:
  - ^(?<file>[\\/0-9a-zA-Z\\._]+):(?<line>\\d+): (?<message>.*)$

while trying to match against log entry (the first line really):

./exam.tex:19: Undefined control sequence.
<recently read> \toprule

l.19                 \toprule

./exam.tex:19:  ==> Fatal error occurred, no output PDF file produced!

Atom Version: 1.12.7 Electron Version: 1.3.13 System: Ubuntu 14.04.5 Thrown From: build package, v0.67.0

Stack Trace

Uncaught TypeError: Path must be a string. Received undefined

At path.js:7

TypeError: Path must be a string. Received undefined
    at assertPath (path.js:7:11)
    at Object.isAbsolute (path.js:1202:5)
    at normalizePath (/home/abid/.atom/packages/build/lib/linter-integration.js:21:30)
    at /home/abid/.atom/packages/build/lib/linter-integration.js:36:17
    at Array.map (native)
    at Linter.processMessages (/home/abid/.atom/packages/build/lib/linter-integration.js:32:38)
    at ChildProcess.<anonymous> (/home/abid/.atom/packages/build/lib/build.js:196:36)
    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)

Commands

     -0:11.6.0 vim-mode:move-right (atom-text-editor.editor.vim-mode.is-focused.normal-mode)
     -0:11 vim-mode:insert-after (atom-text-editor.editor.vim-mode.is-focused.normal-mode)
     -0:10.3.0 core:delete (atom-text-editor.editor.vim-mode.is-focused.insert-mode)
     -0:09.2.0 editor:newline (atom-text-editor.editor.vim-mode.is-focused.insert-mode)
  3x -0:08.3.0 core:backspace (atom-text-editor.editor.vim-mode.is-focused.insert-mode)
     -0:06.7.0 vim-mode:reset-normal-mode (atom-text-editor.editor.vim-mode.is-focused.insert-mode)
     -0:06.3.0 vim-mode:insert-after-end-of-line (atom-text-editor.editor.vim-mode.is-focused.normal-mode)
     -0:05.6.0 vim-mode:reset-normal-mode (atom-text-editor.editor.vim-mode.is-focused.insert-mode)
     -0:05.3.0 ex-mode:open (atom-text-editor.editor.vim-mode.is-focused.normal-mode)
     -0:05.3.0 blur (atom-text-editor.editor.vim-mode.is-focused.normal-mode)
     -0:04.7.0 core:confirm (atom-text-editor.editor.mini.is-focused)
  2x -0:04.7.0 blur (atom-text-editor.editor.mini.is-focused)
     -0:03.4.0 build:trigger (atom-text-editor.editor.vim-mode.normal-mode.is-focused)
     -0:03.4.0 blur (atom-text-editor.editor.vim-mode.normal-mode.is-focused)
     -0:00.6.0 build:trigger (div.build.tool-panel.native-key-bindings)
  4x -0:00.6.0 blur (div.build.tool-panel.native-key-bindings)

Config

{
  "core": {
    "disabledPackages": [
      "markdown-preview",
      "spell-check",
      "build-tools"
    ],
    "telemetryConsent": "limited"
  }
}

Installed Packages

# User
atom-shell-commands, v1.5.0 (active)
autocomplete-python, v1.8.20 (active)
build, v0.67.0 (active)
build-tools, v4.5.2 (inactive)
busy, v0.7.0 (active)
ex-mode, v0.13.1 (active)
file-icons, v1.7.25 (active)
intentions, v1.1.2 (active)
json-schema, v0.1.15 (active)
language-haskell, v1.9.9 (active)
language-latex, v1.0.0 (active)
language-r, v0.4.1 (active)
latexer, v0.3.0 (active)
linter, v1.11.18 (active)
linter-chktex, v1.3.0 (active)
linter-lintr, v1.1.1 (active)
linter-markdown, v3.0.2 (active)
linter-pep8, v1.3.2 (active)
linter-pylint, v1.2.2 (active)
linter-spell, v0.12.6 (active)
linter-spell-latex, v0.9.1 (active)
local-word-count, v0.0.0 (inactive)
markdown-preview-plus, v2.4.0 (active)
merge-conflicts, v1.4.4 (active)
next-line-comment, v0.2.1 (active)
pdf-view, v0.54.0 (active)
python-tools, v0.6.8 (active)
tablr, v1.5.5 (active)
terminal-plus, v0.14.5 (active)
todo-show, v1.8.0 (inactive)
vim-mode, v0.65.2 (active)
atom-dark-syntax, v0.27.0 (inactive)
atom-dark-ui, v0.52.0 (inactive)
atom-light-syntax, v0.28.0 (inactive)
atom-light-ui, v0.45.0 (inactive)
base16-tomorrow-dark-theme, v1.3.0 (inactive)
base16-tomorrow-light-theme, v1.3.0 (inactive)
one-dark-ui, v1.6.2 (active)
one-light-ui, v1.6.2 (inactive)
one-dark-syntax, v1.5.0 (active)
one-light-syntax, v1.5.0 (inactive)
solarized-dark-syntax, v1.0.5 (inactive)
solarized-light-syntax, v1.0.5 (inactive)
about, v1.7.0 (active)
archive-view, v0.62.0 (active)
autocomplete-atom-api, v0.10.0 (active)
autocomplete-css, v0.13.1 (active)
autocomplete-html, v0.7.2 (active)
autocomplete-plus, v2.31.4 (active)
autocomplete-snippets, v1.11.0 (active)
autoflow, v0.27.0 (inactive)
autosave, v0.23.1 (active)
background-tips, v0.26.1 (active)
bookmarks, v0.42.0 (active)
bracket-matcher, v0.82.2 (active)
command-palette, v0.39.0 (inactive)
deprecation-cop, v0.54.1 (active)
dev-live-reload, v0.47.0 (active)
encoding-selector, v0.22.0 (active)
find-and-replace, v0.202.2 (inactive)
fuzzy-finder, v1.4.0 (active)
git-diff, v1.1.0 (active)
go-to-line, v0.31.0 (inactive)
grammar-selector, v0.48.2 (active)
image-view, v0.60.0 (active)
incompatible-packages, v0.26.1 (active)
keybinding-resolver, v0.35.0 (active)
line-ending-selector, v0.5.0 (active)
link, v0.31.2 (inactive)
markdown-preview, v0.158.8 (inactive)
notifications, v0.65.1 (active)
open-on-github, v1.2.1 (inactive)
package-generator, v1.0.1 (inactive)
settings-view, v0.243.1 (active)
snippets, v1.0.4 (active)
spell-check, v0.68.4 (inactive)
status-bar, v1.4.1 (active)
styleguide, v0.47.2 (active)
symbols-view, v0.113.1 (inactive)
tabs, v0.103.0 (active)
timecop, v0.33.2 (active)
tree-view, v0.210.0 (active)
update-package-dependencies, v0.10.0 (active)
welcome, v0.35.1 (active)
whitespace, v0.35.0 (active)
wrap-guide, v0.38.2 (active)
language-c, v0.54.0 (active)
language-clojure, v0.22.1 (active)
language-coffee-script, v0.48.0 (active)
language-csharp, v0.13.0 (active)
language-css, v0.40.1 (active)
language-gfm, v0.88.0 (active)
language-git, v0.15.0 (active)
language-go, v0.43.0 (active)
language-html, v0.47.1 (active)
language-hyperlink, v0.16.1 (active)
language-java, v0.24.0 (active)
language-javascript, v0.122.0 (active)
language-json, v0.18.3 (active)
language-less, v0.29.6 (active)
language-make, v0.22.2 (active)
language-mustache, v0.13.0 (active)
language-objective-c, v0.15.1 (active)
language-perl, v0.37.0 (active)
language-php, v0.37.3 (active)
language-property-list, v0.8.0 (active)
language-python, v0.45.1 (active)
language-ruby, v0.70.2 (active)
language-ruby-on-rails, v0.25.1 (active)
language-sass, v0.57.0 (active)
language-shellscript, v0.23.0 (active)
language-source, v0.9.0 (active)
language-sql, v0.25.0 (active)
language-text, v0.7.1 (active)
language-todo, v0.29.1 (active)
language-toml, v0.18.1 (active)
language-xml, v0.34.12 (active)
language-yaml, v0.27.1 (active)

# Dev
No dev packages
noseglid commented 7 years ago

try without the ^ and $.

abid-mujtaba commented 7 years ago

The primary error was that the regex string needed to be enclosed in quotes. Without the quotes atom was throwing the 'Path must be a string' error.

After the quotes were added I did have to remove the ^ and $ to make the error-matching actually work.

I would suggest updating the README to reflect both of these points.