ga2mer / atom-lebab

Atom package for convert es5 to es6/7 use lebab
https://atom.io/packages/lebab
MIT License
21 stars 1 forks source link

Uncaught SyntaxError: Unexpected token . #14

Open jducrot opened 7 years ago

jducrot commented 7 years ago

[Enter steps to reproduce:]

  1. highlight the following ui-router route for an Angular 1.6 application .state({ name: 'cases-info', url: '/{tenantId}/cases/{id}/info', template: require('packets/info/template.html'), controller: 'PacketInfoController', data: { pageTitle: 'Case Information', pageId: 'cases-show-info', }, resolve: { packet: /*@ngInject*/getPacket } })
  2. Press ctrl + option + K

Atom: 1.20.0 x64 Electron: 1.6.9 OS: Mac OS X 10.12.6 Thrown From: lebab package 0.10.0

Stack Trace

Uncaught SyntaxError: Unexpected token .

At /Users/jean/.atom/packages/lebab/node_modules/espree/espree.js:467

SyntaxError: Unexpected token .
    at Parser.instance.raise.instance.raiseRecoverable (/packages/lebab/node_modules/espree/espree.js:463:19)
    at Parser.instance.unexpected (/packages/lebab/node_modules/espree/espree.js:496:14)
    at /packages/lebab/node_modules/acorn/dist/acorn.js:2094:10)
    at Parser.parseExprAtom (/packages/lebab/node_modules/acorn-jsx/inject.js:383:24)
    at /packages/lebab/node_modules/acorn/dist/acorn.js:1955:19)
    at /packages/lebab/node_modules/acorn/dist/acorn.js:1932:17)
    at /packages/lebab/node_modules/acorn/dist/acorn.js:1874:19)
    at /packages/lebab/node_modules/acorn/dist/acorn.js:1857:19)
    at /packages/lebab/node_modules/acorn/dist/acorn.js:1832:19)
    at /packages/lebab/node_modules/acorn/dist/acorn.js:1803:19)
    at /packages/lebab/node_modules/acorn/dist/acorn.js:797:45)
    at /packages/lebab/node_modules/acorn/dist/acorn.js:690:23)
    at Parser.parseTopLevel (/packages/lebab/node_modules/espree/espree.js:316:34)
    at Parser.parse (/packages/lebab/node_modules/acorn/dist/acorn.js:543:15)
    at Object.parse (/packages/lebab/node_modules/acorn/dist/acorn.js:3669:37)
    at Object.parse (/packages/lebab/node_modules/espree/espree.js:762:21)
    at Object.parse (/packages/lebab/node_modules/lebab/lib/Parser.js:27:29)
    at Object.parse (/packages/lebab/node_modules/recast/lib/parser.js:27:32)
    at /packages/lebab/node_modules/lebab/lib/Transformer.js:66:36
    at Transformer.ignoringHashBangComment (/packages/lebab/node_modules/lebab/lib/Transformer.js:91:25)
    at Transformer.applyAllTransforms (/packages/lebab/node_modules/lebab/lib/Transformer.js:65:19)
    at Transformer.run (/packages/lebab/node_modules/lebab/lib/Transformer.js:56:20)
    at Object.exports.transform (/packages/lebab/node_modules/lebab/index.js:14:62)
    at Converter.convert (/packages/lebab/lib/Converter.js:13:40)
    at Object.convert (/packages/lebab/lib/lebab.js:30:40)
    at /packages/lebab/lib/lebab.js:16:24)
    at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app/src/command-registry.js:265:35)
    at /Applications/Atom.app/Contents/Resources/app/src/command-registry.js:3:65
    at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/Applications/Atom.app/Contents/Resources/app/node_modules/atom-keymap/lib/keymap-manager.js:621:22)
    at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/Applications/Atom.app/Contents/Resources/app/node_modules/atom-keymap/lib/keymap-manager.js:412:28)
    at WindowEventHandler.module.exports.WindowEventHandler.handleDocumentKeyEvent (/Applications/Atom.app/Contents/Resources/app/src/window-event-handler.js:100:42)
    at HTMLDocument.<anonymous> (/Applications/Atom.app/Contents/Resources/app/src/window-event-handler.js:3:65)

Commands

     -0:22.9.0 tree-view:show (atom-workspace.workspace.scrollbars-visible-when-scrolling)
     -0:08.7.0 lebab:convert (input.hidden-input)

Non-Core Packages

atom-beautify 0.30.5 
atom-jasmine 0.8.1 
atom-material-syntax 1.0.6 
atom-ternjs 0.18.3 
auto-detect-indentation 1.3.0 
autoclose-html 0.23.0 
autocomplete-modules 1.7.0 
emmet 2.4.3 
file-icons 2.1.11 
fonts 3.0.3 
git-projects 1.17.0 
highlight-selected 0.13.1 
language-cfml 0.17.1 
lebab 0.10.0 
pigments 0.40.2 
project-manager 3.3.5 
regex-railroad-diagram 0.19.3 
sort-lines 0.15.0 
todo-show 2.0.0 
tree-view-git-status 1.4.0 
nene commented 7 years ago

I guess the whole handling of selections is problematic.

It expects one to form a selection that contains syntactically valid chunk of JavaScript. If it isn't it tries to parse it and crashes.

Instead it should expect this sort of failure and at least provide some message like "please select well-formed portion of code" instead of crashing.