yasuyuky/autocomplete-clang

Uncaught SyntaxError: Invalid regular expression: /^Dumping\s(?:[A-Za-z_]*::)*?");:/: Unmatched ')'

Closed this issue · 11 comments

[Enter steps to reproduce below:]

  1. Right click on a function in arduino sketch and select "Go to Diclaration"

Atom Version: 1.12.7
Electron Version: 1.3.13
System: Mac OS X 10.12
Thrown From: autocomplete-clang package, v0.10.0

Stack Trace

Uncaught SyntaxError: Invalid regular expression: /^Dumping\s(?:[A-Za-z_]::)?");:/: Unmatched ')'

At /Users/jojiabraham/.atom/packages/autocomplete-clang/lib/autocomplete-clang.coffee:184

SyntaxError: Invalid regular expression: /^Dumping\s(?:[A-Za-z_]*::)*?");:/: Unmatched ')'
    at RegExp (native)
    at Object.parseAstDump (/Users/jojiabraham/.atom/packages/autocomplete-clang/lib/autocomplete-clang.coffee:184:31)
    at Object.handleGoDeclarationResult (/Users/jojiabraham/.atom/packages/autocomplete-clang/lib/autocomplete-clang.coffee:165:15)
    at exit (/Users/jojiabraham/.atom/packages/autocomplete-clang/lib/autocomplete-clang.coffee:93:18)
    at triggerExitCallback (/Applications/Atom.app/Contents/Resources/app.asar/src/buffered-process.js:215:47)
    at ChildProcess.<anonymous> (/Applications/Atom.app/Contents/Resources/app.asar/src/buffered-process.js:237:18)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:215:12)

Commands

     -0:00.2.0 autocomplete-clang:go-declaration (atom-text-editor.editor.is-focused)

Config

{
  "core": {
    "ignoredNames": [
      ".git",
      ".hg",
      ".svn",
      ".DS_Store",
      "._*",
      "Thumbs.db",
      ".pioenvs",
      ".piolibdeps",
      ".clang_complete",
      ".gcc-flags.json"
    ],
    "telemetryConsent": "limited"
  },
  "autocomplete-clang": {}
}

Installed Packages

# User
autocomplete-clang, v0.10.0 (active)
build, v0.67.0 (active)
busy, v0.7.0 (active)
git-control, v0.8.2 (inactive)
git-plus, v5.25.1 (active)
git-status, v0.3.4 (inactive)
github-2014, v3.17.0 (inactive)
language-ini, v1.16.0 (active)
linter, v1.11.18 (active)
linter-gcc, v0.6.15 (active)
mac-github-syntax, v1.3.9 (inactive)
merge-conflicts, v1.4.4 (active)
minimap, v4.25.6 (active)
platformio-ide, v1.6.0 (active)
platformio-ide-terminal, v2.2.2 (active)
terminal-panel-uoa, v0.5.12 (inactive)
tool-bar, v1.0.1 (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)
exception-reporting, v0.40.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 (active)
metrics, v1.1.2 (active)
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 (active)
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
stale commented

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

This bug may still exist. I don't think term is properly escaped here:

match = candidate.match ///^Dumping\s(?:[A-Za-z_]*::)*?#{term}:///

Thanks for your feedback!

I can not reproduce the problem.
Could you show a minimal example to reproduce?

Steps to reproduce:

  1. Select part of a C or C++ source file that contains more right parentheses than left parentheses, e.g. int argc, char **argv)
  2. Right-click the selection
  3. Click "Goto Declaration"
  4. An exception is thrown by autocomplete-clang, so Atom displays a message that links to issue #112 (which was closed as wontfix)


Here's a more recent error report (unimportant details excluded):

Atom: 1.38.2 x64
Electron: 2.0.18
OS: "Arch Linux"
Thrown From: autocomplete-clang package 0.12.0

Stack Trace

Uncaught SyntaxError: Invalid regular expression: /^Dumping\s(?:[A-Za-z_]::)?):/: Unmatched ')'

At /home/cebtenzzre/.atom/packages/autocomplete-clang/lib/jumper.coffee:72

SyntaxError: Invalid regular expression: /^Dumping\s(?:[A-Za-z_]*::)*?):/: Unmatched ')'
    at RegExp (<anonymous>)
    at Object.parseAstDump (/packages/autocomplete-clang/lib/jumper.coffee:72:31)
    at Object.handleAstDumpResult (/packages/autocomplete-clang/lib/jumper.coffee:26:15)
    at /packages/autocomplete-clang/lib/jumper.coffee:21:16
    at exit (/packages/autocomplete-clang/lib/clang-args-builder.coffee:24:25)
    at n (/usr/share/atom/resources/app/static/<embedded>:14:1119363)
    at t.bufferStream (/usr/share/atom/resources/app/static/<embedded>:14:1119517)
    at Socket.e.on (/usr/share/atom/resources/app/static/<embedded>:14:1118119)
    at emitOne (events.js:121:20)
    at Socket.emit (events.js:211:7)
    at Pipe._handle.close [as _onclose] (net.js:554:12)

Thank you. It can not be reproduced on macOS. I will try using VM when I have time.

stale commented

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale commented

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

The buggy source file hasn't been updated since I last re-verified the problem. It's an obvious lack of escaping of a variable in a regex. One solution would be to iterate the matches for a regex without term and match term as a literal against those (instead of a regex).

I just released new version to fix this.
Could you try 0.12.1?

With the new version, selecting characters with a special meaning in regex no longer throws an exception.

Looks like it can be closed. If not, feel free to reopen.