{"action":"opened","issue":{"url":"https://api.github.com/repos/atom/atom/issues/9353","labels_url":"https://api.github.com/repos/atom/atom/issues/9353/labels{/name}","comments_url":"https://api.github.com/repos/atom/atom/issues/9353/comments","events_url":"https://api.github.com/repos/atom/atom/issues/9353/events","html_url":"https://github.com/atom/atom/issues/9353","id":114296757,"number":9353,"title":"AST-based language support (syntax highlighting, linting, etc)","user":{"login":"phlogisticfugu","id":7955702,"avatar_url":"https://avatars.githubusercontent.com/u/7955702?v=3","gravatar_id":"","url":"https://api.github.com/users/phlogisticfugu","html_url":"https://github.com/phlogisticfugu","followers_url":"https://api.github.com/users/phlogisticfugu/followers","following_url":"https://api.github.com/users/phlogisticfugu/following{/other_user}","gists_url":"https://api.github.com/users/phlogisticfugu/gists{/gist_id}","starred_url":"https://api.github.com/users/phlogisticfugu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/phlogisticfugu/subscriptions","organizations_url":"https://api.github.com/users/phlogisticfugu/orgs","repos_url":"https://api.github.com/users/phlogisticfugu/repos","events_url":"https://api.github.com/users/phlogisticfugu/events{/privacy}","received_events_url":"https://api.github.com/users/phlogisticfugu/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-10-30T15:51:07Z","updated_at":"2015-10-30T15:51:07Z","closed_at":null,"body":"One of the new things out with [Babel 6](https://babeljs.io/blog/2015/10/29/6.0.0/) is a vision of it's use in tools like Atom for syntax highlighting, linting, code completion, and other language-dependent features.\r\n\r\nAtom, as I understand it, leverages TextMate grammar's.  While this has been a great way to get instant support for a wide ecosystem of languages, it depends on regular expressions, which can have bad performance edge cases.  For example, any time I happen to load a large minified JavaScript file in Atom, it effectively freezes.\r\n\r\nPerhaps if there was support for some mechanism within Atom that would take an AST generated by something like Babel 6, transform or parse that into a language-agnostic form, and use that for language-specific interactions within Atom (e.g. markers for syntax highlighting), we could get much better performance, and be able to leverage a growing ecosystem of AST parsers."}}