mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-04-01 01:20:31 -04:00
Merge VS Code 1.21 source code (#1067)
* Initial VS Code 1.21 file copy with patches * A few more merges * Post npm install * Fix batch of build breaks * Fix more build breaks * Fix more build errors * Fix more build breaks * Runtime fixes 1 * Get connection dialog working with some todos * Fix a few packaging issues * Copy several node_modules to package build to fix loader issues * Fix breaks from master * A few more fixes * Make tests pass * First pass of license header updates * Second pass of license header updates * Fix restore dialog issues * Remove add additional themes menu items * fix select box issues where the list doesn't show up * formatting * Fix editor dispose issue * Copy over node modules to correct location on all platforms
This commit is contained in:
@@ -9,9 +9,7 @@ import 'vs/css!./links';
|
||||
import * as nls from 'vs/nls';
|
||||
import { onUnexpectedError } from 'vs/base/common/errors';
|
||||
import * as platform from 'vs/base/common/platform';
|
||||
import Severity from 'vs/base/common/severity';
|
||||
import { TPromise } from 'vs/base/common/winjs.base';
|
||||
import { IMessageService } from 'vs/platform/message/common/message';
|
||||
import { IOpenerService } from 'vs/platform/opener/common/opener';
|
||||
import * as editorCommon from 'vs/editor/common/editorCommon';
|
||||
import { registerEditorAction, registerEditorContribution, ServicesAccessor, EditorAction } from 'vs/editor/browser/editorExtensions';
|
||||
@@ -22,9 +20,11 @@ import { IDisposable, dispose } from 'vs/base/common/lifecycle';
|
||||
import { registerThemingParticipant } from 'vs/platform/theme/common/themeService';
|
||||
import { editorActiveLinkForeground } from 'vs/platform/theme/common/colorRegistry';
|
||||
import { Position } from 'vs/editor/common/core/position';
|
||||
import { ModelDecorationOptions } from 'vs/editor/common/model/textModelWithDecorations';
|
||||
import { ModelDecorationOptions } from 'vs/editor/common/model/textModel';
|
||||
import { ClickLinkGesture, ClickLinkMouseEvent, ClickLinkKeyboardEvent } from 'vs/editor/contrib/goToDeclaration/clickLinkGesture';
|
||||
import { MarkdownString } from 'vs/base/common/htmlContent';
|
||||
import { TrackedRangeStickiness, IModelDeltaDecoration, IModelDecorationsChangeAccessor } from 'vs/editor/common/model';
|
||||
import { INotificationService } from 'vs/platform/notification/common/notification';
|
||||
|
||||
const HOVER_MESSAGE_GENERAL_META = new MarkdownString().appendText(
|
||||
platform.isMacintosh
|
||||
@@ -43,42 +43,42 @@ const HOVER_MESSAGE_COMMAND_ALT = new MarkdownString().appendText(nls.localize('
|
||||
|
||||
const decoration = {
|
||||
meta: ModelDecorationOptions.register({
|
||||
stickiness: editorCommon.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
|
||||
stickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
|
||||
inlineClassName: 'detected-link',
|
||||
hoverMessage: HOVER_MESSAGE_GENERAL_META
|
||||
}),
|
||||
metaActive: ModelDecorationOptions.register({
|
||||
stickiness: editorCommon.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
|
||||
stickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
|
||||
inlineClassName: 'detected-link-active',
|
||||
hoverMessage: HOVER_MESSAGE_GENERAL_META
|
||||
}),
|
||||
alt: ModelDecorationOptions.register({
|
||||
stickiness: editorCommon.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
|
||||
stickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
|
||||
inlineClassName: 'detected-link',
|
||||
hoverMessage: HOVER_MESSAGE_GENERAL_ALT
|
||||
}),
|
||||
altActive: ModelDecorationOptions.register({
|
||||
stickiness: editorCommon.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
|
||||
stickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
|
||||
inlineClassName: 'detected-link-active',
|
||||
hoverMessage: HOVER_MESSAGE_GENERAL_ALT
|
||||
}),
|
||||
altCommand: ModelDecorationOptions.register({
|
||||
stickiness: editorCommon.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
|
||||
stickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
|
||||
inlineClassName: 'detected-link',
|
||||
hoverMessage: HOVER_MESSAGE_COMMAND_ALT
|
||||
}),
|
||||
altCommandActive: ModelDecorationOptions.register({
|
||||
stickiness: editorCommon.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
|
||||
stickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
|
||||
inlineClassName: 'detected-link-active',
|
||||
hoverMessage: HOVER_MESSAGE_COMMAND_ALT
|
||||
}),
|
||||
metaCommand: ModelDecorationOptions.register({
|
||||
stickiness: editorCommon.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
|
||||
stickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
|
||||
inlineClassName: 'detected-link',
|
||||
hoverMessage: HOVER_MESSAGE_COMMAND_META
|
||||
}),
|
||||
metaCommandActive: ModelDecorationOptions.register({
|
||||
stickiness: editorCommon.TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
|
||||
stickiness: TrackedRangeStickiness.NeverGrowsWhenTypingAtEdges,
|
||||
inlineClassName: 'detected-link-active',
|
||||
hoverMessage: HOVER_MESSAGE_COMMAND_META
|
||||
}),
|
||||
@@ -87,7 +87,7 @@ const decoration = {
|
||||
|
||||
class LinkOccurrence {
|
||||
|
||||
public static decoration(link: Link, useMetaKey: boolean): editorCommon.IModelDeltaDecoration {
|
||||
public static decoration(link: Link, useMetaKey: boolean): IModelDeltaDecoration {
|
||||
return {
|
||||
range: link.range,
|
||||
options: LinkOccurrence._getOptions(link, useMetaKey, false)
|
||||
@@ -118,18 +118,18 @@ class LinkOccurrence {
|
||||
this.decorationId = decorationId;
|
||||
}
|
||||
|
||||
public activate(changeAccessor: editorCommon.IModelDecorationsChangeAccessor, useMetaKey: boolean): void {
|
||||
public activate(changeAccessor: IModelDecorationsChangeAccessor, useMetaKey: boolean): void {
|
||||
changeAccessor.changeDecorationOptions(this.decorationId, LinkOccurrence._getOptions(this.link, useMetaKey, true));
|
||||
}
|
||||
|
||||
public deactivate(changeAccessor: editorCommon.IModelDecorationsChangeAccessor, useMetaKey: boolean): void {
|
||||
public deactivate(changeAccessor: IModelDecorationsChangeAccessor, useMetaKey: boolean): void {
|
||||
changeAccessor.changeDecorationOptions(this.decorationId, LinkOccurrence._getOptions(this.link, useMetaKey, false));
|
||||
}
|
||||
}
|
||||
|
||||
class LinkDetector implements editorCommon.IEditorContribution {
|
||||
|
||||
private static ID: string = 'editor.linkDetector';
|
||||
private static readonly ID: string = 'editor.linkDetector';
|
||||
|
||||
public static get(editor: ICodeEditor): LinkDetector {
|
||||
return editor.getContribution<LinkDetector>(LinkDetector.ID);
|
||||
@@ -144,17 +144,17 @@ class LinkDetector implements editorCommon.IEditorContribution {
|
||||
private computePromise: TPromise<void>;
|
||||
private activeLinkDecorationId: string;
|
||||
private openerService: IOpenerService;
|
||||
private messageService: IMessageService;
|
||||
private notificationService: INotificationService;
|
||||
private currentOccurrences: { [decorationId: string]: LinkOccurrence; };
|
||||
|
||||
constructor(
|
||||
editor: ICodeEditor,
|
||||
@IOpenerService openerService: IOpenerService,
|
||||
@IMessageService messageService: IMessageService
|
||||
@INotificationService notificationService: INotificationService
|
||||
) {
|
||||
this.editor = editor;
|
||||
this.openerService = openerService;
|
||||
this.messageService = messageService;
|
||||
this.notificationService = notificationService;
|
||||
this.listenersToRemove = [];
|
||||
|
||||
let clickLinkGesture = new ClickLinkGesture(editor);
|
||||
@@ -242,7 +242,7 @@ class LinkDetector implements editorCommon.IEditorContribution {
|
||||
|
||||
private updateDecorations(links: Link[]): void {
|
||||
const useMetaKey = (this.editor.getConfiguration().multiCursorModifier === 'altKey');
|
||||
this.editor.changeDecorations((changeAccessor: editorCommon.IModelDecorationsChangeAccessor) => {
|
||||
this.editor.changeDecorations((changeAccessor: IModelDecorationsChangeAccessor) => {
|
||||
var oldDecorations: string[] = [];
|
||||
let keys = Object.keys(this.currentOccurrences);
|
||||
for (let i = 0, len = keys.length; i < len; i++) {
|
||||
@@ -251,7 +251,7 @@ class LinkDetector implements editorCommon.IEditorContribution {
|
||||
oldDecorations.push(occurance.decorationId);
|
||||
}
|
||||
|
||||
var newDecorations: editorCommon.IModelDeltaDecoration[] = [];
|
||||
var newDecorations: IModelDeltaDecoration[] = [];
|
||||
if (links) {
|
||||
// Not sure why this is sometimes null
|
||||
for (var i = 0; i < links.length; i++) {
|
||||
@@ -326,9 +326,9 @@ class LinkDetector implements editorCommon.IEditorContribution {
|
||||
}, err => {
|
||||
// different error cases
|
||||
if (err === 'invalid') {
|
||||
this.messageService.show(Severity.Warning, nls.localize('invalid.url', 'Sorry, failed to open this link because it is not well-formed: {0}', link.url));
|
||||
this.notificationService.warn(nls.localize('invalid.url', 'Failed to open this link because it is not well-formed: {0}', link.url));
|
||||
} else if (err === 'missing') {
|
||||
this.messageService.show(Severity.Warning, nls.localize('missing.url', 'Sorry, failed to open this link because its target is missing.'));
|
||||
this.notificationService.warn(nls.localize('missing.url', 'Failed to open this link because its target is missing.'));
|
||||
} else {
|
||||
onUnexpectedError(err);
|
||||
}
|
||||
@@ -395,9 +395,14 @@ class OpenLinkAction extends EditorAction {
|
||||
return;
|
||||
}
|
||||
|
||||
let link = linkDetector.getLinkOccurrence(editor.getPosition());
|
||||
if (link) {
|
||||
linkDetector.openLinkOccurrence(link, false);
|
||||
let selections = editor.getSelections();
|
||||
|
||||
for (let sel of selections) {
|
||||
let link = linkDetector.getLinkOccurrence(sel.getEndPosition());
|
||||
|
||||
if (link) {
|
||||
linkDetector.openLinkOccurrence(link, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user