use Logger directly
This commit is contained in:
parent
09a978538c
commit
ac9717dc3d
|
@ -86,7 +86,7 @@ namespace ts.server {
|
|||
// if the ref count for this directory watcher drops to 0, it's time to close it
|
||||
this.directoryWatchersRefCount[directory]--;
|
||||
if (this.directoryWatchersRefCount[directory] === 0) {
|
||||
this.projectService.log(`Close directory watcher for: ${directory}`);
|
||||
this.projectService.logger.info(`Close directory watcher for: ${directory}`);
|
||||
this.directoryWatchersForTsconfig[directory].close();
|
||||
delete this.directoryWatchersForTsconfig[directory];
|
||||
}
|
||||
|
@ -97,7 +97,7 @@ namespace ts.server {
|
|||
let parentPath = getDirectoryPath(currentPath);
|
||||
while (currentPath != parentPath) {
|
||||
if (!this.directoryWatchersForTsconfig[currentPath]) {
|
||||
this.projectService.log(`Add watcher for: ${currentPath}`);
|
||||
this.projectService.logger.info(`Add watcher for: ${currentPath}`);
|
||||
this.directoryWatchersForTsconfig[currentPath] = this.projectService.host.watchDirectory(currentPath, callback);
|
||||
this.directoryWatchersRefCount[currentPath] = 1;
|
||||
}
|
||||
|
@ -279,7 +279,7 @@ namespace ts.server {
|
|||
return;
|
||||
}
|
||||
|
||||
this.log(`Detected source file changes: ${fileName}`);
|
||||
this.logger.info(`Detected source file changes: ${fileName}`);
|
||||
this.throttledOperations.schedule(
|
||||
project.configFileName,
|
||||
/*delay*/250,
|
||||
|
@ -306,7 +306,7 @@ namespace ts.server {
|
|||
}
|
||||
|
||||
private onConfigChangedForConfiguredProject(project: ConfiguredProject) {
|
||||
this.log(`Config file changed: ${project.configFileName}`);
|
||||
this.logger.info(`Config file changed: ${project.configFileName}`);
|
||||
this.updateConfiguredProject(project);
|
||||
this.refreshInferredProjects();
|
||||
}
|
||||
|
@ -317,11 +317,11 @@ namespace ts.server {
|
|||
private onConfigFileAddedForInferredProject(fileName: string) {
|
||||
// TODO: check directory separators
|
||||
if (getBaseFileName(fileName) != "tsconfig.json") {
|
||||
this.log(`${fileName} is not tsconfig.json`);
|
||||
this.logger.info(`${fileName} is not tsconfig.json`);
|
||||
return;
|
||||
}
|
||||
|
||||
this.log(`Detected newly added tsconfig file: ${fileName}`);
|
||||
this.logger.info(`Detected newly added tsconfig file: ${fileName}`);
|
||||
this.reloadProjects();
|
||||
}
|
||||
|
||||
|
@ -331,7 +331,7 @@ namespace ts.server {
|
|||
}
|
||||
|
||||
private removeProject(project: Project) {
|
||||
this.log(`remove project: ${project.getRootFiles().toString()}`);
|
||||
this.logger.info(`remove project: ${project.getRootFiles().toString()}`);
|
||||
|
||||
project.close();
|
||||
|
||||
|
@ -460,16 +460,16 @@ namespace ts.server {
|
|||
*/
|
||||
private openOrUpdateConfiguredProjectForFile(fileName: NormalizedPath): OpenConfiguredProjectResult {
|
||||
const searchPath = getDirectoryPath(fileName);
|
||||
this.log(`Search path: ${searchPath}`, "Info");
|
||||
this.logger.info(`Search path: ${searchPath}`);
|
||||
|
||||
// check if this file is already included in one of external projects
|
||||
const configFileName = this.findConfigFile(asNormalizedPath(searchPath));
|
||||
if (!configFileName) {
|
||||
this.log("No config files found.");
|
||||
this.logger.info("No config files found.");
|
||||
return {};
|
||||
}
|
||||
|
||||
this.log(`Config file name: ${configFileName}`, "Info");
|
||||
this.logger.info(`Config file name: ${configFileName}`);
|
||||
|
||||
const project = this.findConfiguredProjectByProjectName(configFileName);
|
||||
if (!project) {
|
||||
|
@ -480,7 +480,7 @@ namespace ts.server {
|
|||
|
||||
// even if opening config file was successful, it could still
|
||||
// contain errors that were tolerated.
|
||||
this.log(`Opened configuration file ${configFileName}`, "Info");
|
||||
this.logger.info(`Opened configuration file ${configFileName}`);
|
||||
if (errors && errors.length > 0) {
|
||||
return { configFileName, configFileErrors: errors };
|
||||
}
|
||||
|
@ -737,7 +737,7 @@ namespace ts.server {
|
|||
|
||||
private updateConfiguredProject(project: ConfiguredProject) {
|
||||
if (!this.host.fileExists(project.configFileName)) {
|
||||
this.log("Config file deleted");
|
||||
this.logger.info("Config file deleted");
|
||||
this.removeProject(project);
|
||||
return;
|
||||
}
|
||||
|
@ -835,26 +835,22 @@ namespace ts.server {
|
|||
return this.filenameToScriptInfo.get(fileName);
|
||||
}
|
||||
|
||||
log(msg: string, type = "Err") {
|
||||
this.logger.msg(msg, type);
|
||||
}
|
||||
|
||||
setHostConfiguration(args: protocol.ConfigureRequestArguments) {
|
||||
if (args.file) {
|
||||
const info = this.getScriptInfoForNormalizedPath(toNormalizedPath(args.file));
|
||||
if (info) {
|
||||
info.setFormatOptions(args.formatOptions);
|
||||
this.log(`Host configuration update for file ${args.file}`, "Info");
|
||||
this.logger.info(`Host configuration update for file ${args.file}`);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (args.hostInfo !== undefined) {
|
||||
this.hostConfiguration.hostInfo = args.hostInfo;
|
||||
this.log(`Host information ${args.hostInfo}`, "Info");
|
||||
this.logger.info(`Host information ${args.hostInfo}`);
|
||||
}
|
||||
if (args.formatOptions) {
|
||||
mergeMaps(this.hostConfiguration.formatCodeOptions, args.formatOptions);
|
||||
this.log("Format host information updated", "Info");
|
||||
this.logger.info("Format host information updated");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -867,7 +863,7 @@ namespace ts.server {
|
|||
* This function rebuilds the project for every file opened by the client
|
||||
*/
|
||||
reloadProjects() {
|
||||
this.log("reload projects.");
|
||||
this.logger.info("reload projects.");
|
||||
// try to reload config file for all open files
|
||||
for (const info of this.openFiles) {
|
||||
this.openOrUpdateConfiguredProjectForFile(info.fileName);
|
||||
|
@ -881,7 +877,7 @@ namespace ts.server {
|
|||
* up to date.
|
||||
*/
|
||||
refreshInferredProjects() {
|
||||
this.log("updating project structure from ...", "Info");
|
||||
this.logger.info("updating project structure from ...");
|
||||
this.printProjects();
|
||||
|
||||
const orphantedFiles: ScriptInfo[] = [];
|
||||
|
|
|
@ -406,7 +406,7 @@ namespace ts.server {
|
|||
}
|
||||
|
||||
const directoryToWatch = getDirectoryPath(this.configFileName);
|
||||
this.projectService.log(`Add recursive watcher for: ${directoryToWatch}`);
|
||||
this.projectService.logger.info(`Add recursive watcher for: ${directoryToWatch}`);
|
||||
this.directoryWatcher = this.projectService.host.watchDirectory(directoryToWatch, path => callback(this, path), /*recursive*/ true);
|
||||
}
|
||||
|
||||
|
@ -418,7 +418,7 @@ namespace ts.server {
|
|||
this.directoriesWatchedForWildcards = reduceProperties(this.wildcardDirectories, (watchers, flag, directory) => {
|
||||
if (comparePaths(configDirectoryPath, directory, ".", !this.projectService.host.useCaseSensitiveFileNames) !== Comparison.EqualTo) {
|
||||
const recursive = (flag & WatchDirectoryFlags.Recursive) !== 0;
|
||||
this.projectService.log(`Add ${recursive ? "recursive " : ""}watcher for: ${directory}`);
|
||||
this.projectService.logger.info(`Add ${recursive ? "recursive " : ""}watcher for: ${directory}`);
|
||||
watchers[directory] = this.projectService.host.watchDirectory(
|
||||
directory,
|
||||
path => callback(this, path),
|
||||
|
|
|
@ -44,11 +44,11 @@ namespace ts.server {
|
|||
}
|
||||
|
||||
perftrc(s: string) {
|
||||
this.msg(s, "Perf");
|
||||
this.msg(s, Msg.Perf);
|
||||
}
|
||||
|
||||
info(s: string) {
|
||||
this.msg(s, "Info");
|
||||
this.msg(s, Msg.Info);
|
||||
}
|
||||
|
||||
startGroup() {
|
||||
|
@ -71,7 +71,7 @@ namespace ts.server {
|
|||
}
|
||||
|
||||
|
||||
msg(s: string, type = "Err") {
|
||||
msg(s: string, type: Msg.Types = Msg.Err) {
|
||||
if (this.fd < 0) {
|
||||
if (this.logFilename) {
|
||||
this.fd = fs.openSync(this.logFilename, "w");
|
||||
|
@ -105,7 +105,7 @@ namespace ts.server {
|
|||
}
|
||||
|
||||
exit() {
|
||||
this.projectService.log("Exiting...", "Info");
|
||||
this.logger.info("Exiting...");
|
||||
this.projectService.closeLog();
|
||||
process.exit(0);
|
||||
}
|
||||
|
|
|
@ -164,7 +164,7 @@ namespace ts.server {
|
|||
private maxUncompressedMessageSize: number,
|
||||
private compress: (s: string) => CompressedData,
|
||||
private hrtime: (start?: number[]) => number[],
|
||||
private logger: Logger) {
|
||||
protected logger: Logger) {
|
||||
this.projectService =
|
||||
new ProjectService(host, logger, cancellationToken, useSingleInferredProject, (eventName, project, fileName) => {
|
||||
this.handleEvent(eventName, project, fileName);
|
||||
|
@ -173,7 +173,7 @@ namespace ts.server {
|
|||
|
||||
private handleEvent(eventName: string, project: Project, fileName: NormalizedPath) {
|
||||
if (eventName == "context") {
|
||||
this.projectService.log("got context event, updating diagnostics for" + fileName, "Info");
|
||||
this.logger.info("got context event, updating diagnostics for" + fileName);
|
||||
this.updateErrorCheck([{ fileName, project }], this.changeSeq,
|
||||
(n) => n === this.changeSeq, 100);
|
||||
}
|
||||
|
@ -187,7 +187,7 @@ namespace ts.server {
|
|||
msg += "\n" + (<StackTraceError>err).stack;
|
||||
}
|
||||
}
|
||||
this.projectService.log(msg);
|
||||
this.logger.msg(msg, Msg.Err);
|
||||
}
|
||||
|
||||
public send(msg: protocol.Message, canCompressResponse: boolean) {
|
||||
|
@ -334,7 +334,7 @@ namespace ts.server {
|
|||
if (!projects) {
|
||||
return;
|
||||
}
|
||||
this.projectService.log(`cleaning ${caption}`);
|
||||
this.logger.info(`cleaning ${caption}`);
|
||||
for (const p of projects) {
|
||||
p.languageService.cleanupSemanticCache();
|
||||
}
|
||||
|
@ -345,7 +345,7 @@ namespace ts.server {
|
|||
this.cleanProjects("configured projects", this.projectService.configuredProjects);
|
||||
this.cleanProjects("external projects", this.projectService.externalProjects);
|
||||
if (typeof global !== "undefined" && global.gc) {
|
||||
this.projectService.log(`global.gc()`);
|
||||
this.logger.info(`global.gc()`);
|
||||
global.gc();
|
||||
global.gc();
|
||||
global.gc();
|
||||
|
@ -1451,8 +1451,8 @@ namespace ts.server {
|
|||
return handler(request);
|
||||
}
|
||||
else {
|
||||
this.projectService.log("Unrecognized JSON command: " + JSON.stringify(request));
|
||||
this.output(undefined, CommandNames.Unknown, /*canCompressResponse*/ false, request.seq, "Unrecognized JSON command: " + request.command);
|
||||
this.logger.msg(`Unrecognized JSON command: ${JSON.stringify(request)}`, Msg.Err);
|
||||
this.output(undefined, CommandNames.Unknown, /*canCompressResponse*/ false, request.seq, `Unrecognized JSON command: ${request.command}`);
|
||||
return { responseRequired: false };
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,17 @@ namespace ts.server {
|
|||
info(s: string): void;
|
||||
startGroup(): void;
|
||||
endGroup(): void;
|
||||
msg(s: string, type?: string): void;
|
||||
msg(s: string, type?: Msg.Types): void;
|
||||
}
|
||||
|
||||
export namespace Msg {
|
||||
export type Err = "Err";
|
||||
export const Err: Err = "Err";
|
||||
export type Info = "Info";
|
||||
export const Info: Info = "Info";
|
||||
export type Perf = "Perf";
|
||||
export const Perf: Perf = "Perf";
|
||||
export type Types = Err | Info | Perf;
|
||||
}
|
||||
|
||||
export function getDefaultFormatCodeSettings(host: ServerHost): FormatCodeSettings {
|
||||
|
|
Loading…
Reference in a new issue