提交 69fd0ddc 编写于 作者: J Joao Moreno

Merge branch 'master' of github.com:Microsoft/vscode

......@@ -126,9 +126,9 @@ export function listProcesses(rootPid: number): Promise<ProcessItem> {
type Item = ProcessInfo | TopProcess;
const execMain = path.basename(process.execPath);
const script = URI.parse(require.toUrl('vs/base/node/ps-win.ps1')).fsPath;
const commandLine = `${script} -ProcessName '${execMain}' -MaxSamples 3`;
const execMain = path.basename(process.execPath).replace(/ /g, '` ');
const script = URI.parse(require.toUrl('vs/base/node/ps-win.ps1')).fsPath.replace(/ /g, '` ');
const commandLine = `${script} -ProcessName ${execMain} -MaxSamples 3`;
const cmd = spawn('powershell.exe', ['-ExecutionPolicy', 'Bypass', '-Command', commandLine]);
let stdout = '';
......@@ -151,10 +151,14 @@ export function listProcesses(rootPid: number): Promise<ProcessItem> {
for (const item of items) {
if (item.type === 'processInfo') {
let load = 0;
for (let value of item.cpuLoad) {
load += value;
if (item.cpuLoad) {
for (let value of item.cpuLoad) {
load += value;
}
load = load / item.cpuLoad.length;
} else {
load = -1;
}
load = load / item.cpuLoad.length;
processItems.set(item.processId, {
name: findName(item.commandLine),
cmd: item.commandLine,
......
......@@ -41,12 +41,17 @@ export function printDiagnostics(info: IMainProcessInfo): Promise<any> {
window.folders.forEach(folder => {
console.log(`| Folder (${basename(folder)})`);
const stats = collectWorkspaceStats(folder, ['node_modules', '.git']);
console.log(formatWorkspaceStats(stats));
const launchConfigs = collectLaunchConfigs(folder);
if (launchConfigs.length > 0) {
console.log(formatLaunchConfigs(launchConfigs));
try {
const stats = collectWorkspaceStats(folder, ['node_modules', '.git']);
console.log(formatWorkspaceStats(stats));
const launchConfigs = collectLaunchConfigs(folder);
if (launchConfigs.length > 0) {
console.log(formatLaunchConfigs(launchConfigs));
}
} catch (error) {
console.log(`| Error: Unable to collect workpsace stats for this folder (${error.toString()})`);
}
});
});
......
......@@ -420,7 +420,7 @@ export class TextModelWithTokens extends TextModel implements editorCommon.IToke
let position = this.validatePosition(_position);
let lineContent = this.getLineContent(position.lineNumber);
if (this._invalidLineStartIndex <= position.lineNumber) {
if (this._invalidLineStartIndex <= position.lineNumber - 1) {
// this line is not tokenized
return getWordAtText(
position.column,
......
......@@ -17,6 +17,7 @@ export class SpdLogService implements ILogService {
_serviceBrand: any;
private level: LogLevel = LogLevel.Error;
private logger: RotatingLogger;
private disposables: IDisposable[] = [];
......@@ -46,33 +47,44 @@ export class SpdLogService implements ILogService {
}
setLevel(logLevel: LogLevel): void {
this.logger.setLevel(logLevel);
this.level = logLevel;
}
// TODO, what about ARGS?
trace(message: string, ...args: any[]): void {
this.logger.trace(this.format(message, args));
if (this.level <= LogLevel.Trace) {
this.logger.trace(this.format(message, args));
}
}
debug(message: string, ...args: any[]): void {
this.logger.debug(this.format(message, args));
if (this.level <= LogLevel.Debug) {
this.logger.debug(this.format(message, args));
}
}
info(message: string, ...args: any[]): void {
this.logger.info(this.format(message, args));
if (this.level <= LogLevel.Info) {
this.logger.info(this.format(message, args));
}
}
warn(message: string, ...args: any[]): void {
this.logger.warn(this.format(message, args));
if (this.level <= LogLevel.Warning) {
this.logger.warn(this.format(message, args));
}
}
error(arg: string | Error, ...args: any[]): void {
const message = arg instanceof Error ? arg.stack : arg;
this.logger.error(this.format(message, args));
if (this.level <= LogLevel.Error) {
const message = arg instanceof Error ? arg.stack : arg;
this.logger.error(this.format(message, args));
}
}
critical(message: string, ...args: any[]): void {
this.logger.critical(this.format(message, args));
if (this.level <= LogLevel.Critical) {
this.logger.critical(this.format(message, args));
}
}
dispose(): void {
......
......@@ -95,7 +95,7 @@ export class ExtensionHostMain {
registerGlobalLogService(logService);
this.disposables.push(logService);
logService.info('main {0}', initData);
logService.info('main', initData);
this._extHostConfiguration = new ExtHostConfiguration(threadService.get(MainContext.MainThreadConfiguration), extHostWorkspace, initData.configuration);
this._extensionService = new ExtHostExtensionService(initData, threadService, extHostWorkspace, this._extHostConfiguration);
......
......@@ -1238,8 +1238,11 @@ export class DebugService implements debug.IDebugService {
}
private onFileChanges(fileChangesEvent: FileChangesEvent): void {
this.model.removeBreakpoints(this.model.getBreakpoints().filter(bp =>
fileChangesEvent.contains(bp.uri, FileChangeType.DELETED)));
const toRemove = this.model.getBreakpoints().filter(bp =>
fileChangesEvent.contains(bp.uri, FileChangeType.DELETED));
if (toRemove.length) {
this.model.removeBreakpoints(toRemove);
}
fileChangesEvent.getUpdated().forEach(event => {
if (this.breakpointsToSendOnResourceSaved.has(event.resource.toString())) {
......
......@@ -265,10 +265,11 @@ export class OpenEditorsView extends ViewsViewletPanel {
}
private onListContextMenu(e: IListContextMenuEvent<OpenEditor | IEditorGroup>): void {
const element = e.element;
this.contextMenuService.showContextMenu({
getAnchor: () => e.anchor,
getActions: () => this.actionProvider.getSecondaryActions(e.element),
getActionsContext: () => e.element
getActions: () => this.actionProvider.getSecondaryActions(element),
getActionsContext: () => element instanceof OpenEditor ? { group: element.editorGroup, editor: element.editorInput } : { group: element }
});
}
......
......@@ -95,4 +95,10 @@ interface Node {
MenuRegistry.appendMenuItem(MenuId.CommandPalette, { command: { id: 'exthost.profile.start', title: localize('profileExtensionHost', "Profile Extension Host for 5 seconds") } });
MenuRegistry.appendMenuItem(MenuId.CommandPalette, {
command: {
id: 'exthost.profile.start',
title: localize('profileExtensionHost', "Profile Extension Host for 5 seconds"),
category: localize('cat', "Developer")
}
});
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册