Make JSDoc skipping public, plus more configurable (#55739)

This commit is contained in:
Jake Bailey
2023-09-21 15:31:09 -07:00
committed by GitHub
parent 56accb08a1
commit a3c5d5d37e
46 changed files with 1741 additions and 143 deletions

View File

@@ -57,6 +57,7 @@ import {
getNormalizedAbsolutePath,
isIncrementalCompilation,
isWatchSet,
JSDocParsingMode,
normalizePath,
optionDeclarations,
optionsForBuild,
@@ -790,7 +791,7 @@ function reportWatchModeWithoutSysSupport(sys: System, reportDiagnostic: Diagnos
}
// This could be inlined everywhere, but this is convenient for debugging and patching.
const skipNonSemanticJSDocParsing = true;
const defaultJSDocParsingMode = JSDocParsingMode.ParseForTypeErrors;
function performBuild(
sys: System,
@@ -842,7 +843,7 @@ function performBuild(
createBuilderStatusReporter(sys, shouldBePretty(sys, buildOptions)),
createWatchStatusReporter(sys, buildOptions),
);
buildHost.skipNonSemanticJSDocParsing = skipNonSemanticJSDocParsing;
buildHost.jsDocParsingMode = defaultJSDocParsingMode;
const solutionPerformance = enableSolutionPerformance(sys, buildOptions);
updateSolutionBuilderHost(sys, cb, buildHost, solutionPerformance);
const onWatchStatusChange = buildHost.onWatchStatusChange;
@@ -872,7 +873,7 @@ function performBuild(
createBuilderStatusReporter(sys, shouldBePretty(sys, buildOptions)),
createReportErrorSummary(sys, buildOptions),
);
buildHost.skipNonSemanticJSDocParsing = skipNonSemanticJSDocParsing;
buildHost.jsDocParsingMode = defaultJSDocParsingMode;
const solutionPerformance = enableSolutionPerformance(sys, buildOptions);
updateSolutionBuilderHost(sys, cb, buildHost, solutionPerformance);
const builder = createSolutionBuilder(buildHost, projects, buildOptions);
@@ -895,7 +896,8 @@ function performCompilation(
config: ParsedCommandLine,
) {
const { fileNames, options, projectReferences } = config;
const host = createCompilerHostWorker(options, /*setParentNodes*/ undefined, skipNonSemanticJSDocParsing, sys);
const host = createCompilerHostWorker(options, /*setParentNodes*/ undefined, sys);
host.jsDocParsingMode = defaultJSDocParsingMode;
const currentDirectory = host.getCurrentDirectory();
const getCanonicalFileName = createGetCanonicalFileName(host.useCaseSensitiveFileNames());
changeCompilerHostLikeToUseCache(host, fileName => toPath(fileName, currentDirectory, getCanonicalFileName));
@@ -928,7 +930,8 @@ function performIncrementalCompilation(
) {
const { options, fileNames, projectReferences } = config;
enableStatisticsAndTracing(sys, options, /*isBuildMode*/ false);
const host = createIncrementalCompilerHost(options, sys, skipNonSemanticJSDocParsing);
const host = createIncrementalCompilerHost(options, sys);
host.jsDocParsingMode = defaultJSDocParsingMode;
const exitStatus = ts_performIncrementalCompilation({
host,
system: sys,
@@ -980,7 +983,7 @@ function updateWatchCompilationHost(
cb: ExecuteCommandLineCallbacks,
watchCompilerHost: WatchCompilerHost<EmitAndSemanticDiagnosticsBuilderProgram>,
) {
watchCompilerHost.skipNonSemanticJSDocParsing = skipNonSemanticJSDocParsing;
watchCompilerHost.jsDocParsingMode = defaultJSDocParsingMode;
updateCreateProgram(sys, watchCompilerHost, /*isBuildMode*/ false);
const emitFilesUsingBuilder = watchCompilerHost.afterProgramCreate!; // TODO: GH#18217
watchCompilerHost.afterProgramCreate = builderProgram => {