JavaScript LS scaffolding + JS module inference by RyanCavanaugh · Pull Request #5266 · microsoft/TypeScript
This is a subset of the prior PR that carves out only the code we need to get a) JavaScript intellisense in general and b) CommonJS module inference in JavaScript files.
Includes work by @vladima in 'services' to get the correct compilation context to Roslyn
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consider extracting this out into a function.
function shouldRecordAmdDefineName(index: number, moduleName: string) { // record first item in the list only if its name is not "require" // record second item in the list only if its name is not "exports" // record third item in the list only if its name is not "module" // record all other items in the list unconditionally switch (index) { case 0: return moduleName !== "require"; case 1: return moduleName !== "exports"; } return index !== 2 || moduleName !== "module"; }
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can remove the AMD logic entirely
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't think you need the declaration.parent.kind test. There should never be a case where that isn't true.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We usually put a blank on both sides of the | operator.
@vladima can you address the comments in program.ts?
# Conflicts: # lib/lib.es6.d.ts # lib/tsc.js # lib/tsserver.js # lib/typescript.d.ts # lib/typescript.js # lib/typescriptServices.d.ts # lib/typescriptServices.js # src/compiler/binder.ts # src/compiler/checker.ts # src/compiler/parser.ts # src/compiler/program.ts # src/harness/fourslash.ts
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters