phoenix
phoenix copied to clipboard
Using es_modules and node plugin together breaks jump to definition in some cases
tracking tern issue: https://github.com/ternjs/tern/issues/1049
Hi,
When trying to enable both es_modules
and node
plugin together, jump to definition
query wont work, but completions
requests work if a file is imported without specifying .js
extension as described below.
We have the following tern init code in Brackets:
ternOptions = {
defs: env,
async: true,
getFile: getFile,
plugins: {
commonjs: true,
requirejs: {},
angular: true,
complete_strings: true,
doc_comment: true,
doc_comments: true,
es_modules: true,
node: true,
node_resolve: true
}
};
The issue can be recreated with three files below, fail.js
, pass.js
and list.js
with contents below:
// fail.js
import {test} from "./list"
// pass.js
import {test} from "./list.js"
// list.js
export function test(){}
The problem:
- Jump to
definition
tern query will not work if we try to trigger it from line1:test
infail.js
, but it will work frompass.js
. - However,
completions
requests pass for both cases to get code hints. - The problem is not present if i only use
es_modules
plugin and notnode
plugin.
expected result
- Jump to
definition
query andcompletions
query should behave the same. But having completions and definitions error tolerant would help with edits. - Should behave consistently with both
es_modules
plugin andnode
plugin enabled.
Background reading done
https://stackoverflow.com/questions/55251956/how-does-javascript-import-find-the-module-without-an-extension
Thanks, Arun.