jiebi/CodeConvo huggingface dataset:
import env = require('vs/base/common/platform'); import {ITextFileService, asFileResource} from 'vs/workbench/parts/files/common/files'; import {IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions} from 'vs/workbench/common/contributions'; <del> import {GlobalNewFileAction, SaveFileAsAction} from 'vs/workbench/parts/files/browser/fileActions'; </del> <ins> import {GlobalNewUntitledFileAction, SaveFileAsAction} from 'vs/workbench/parts/files/browser/fileActions'; </ins> import {FileTracker} from 'vs/workbench/parts/files/electron-browser/electronFileTracker'; import {TextFileService} from 'vs/workbench/parts/files/electron-browser/textFileServices'; import {OpenFolderAction, OPEN_FOLDER_ID, OPEN_FOLDER_LABEL, OpenFileAction, OPEN_FILE_ID, OPEN_FILE_LABEL, OpenFileFolderAction, OPEN_FILE_FOLDER_ID, OPEN_FILE_FOLDER_LABEL, ShowOpenedFileInNewWindow, GlobalRevealInOSAction, GlobalCopyPathAction, CopyPathAction, RevealInOSAction} from 'vs/workbench/parts/files/electron-browser/electronFileActions';
let workbenchActionsRegistry = <IWorkbenchActionRegistry>Registry.as(ActionExtensions.WorkbenchActions); workbenchActionsRegistry.registerWorkbenchAction(new SyncActionDescriptor(SaveFileAsAction, SaveFileAsAction.ID, SaveFileAsAction.LABEL, { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_S }), category, ['save', 'as']); <del> workbenchActionsRegistry.registerWorkbenchAction(new SyncActionDescriptor(GlobalNewFileAction, GlobalNewFileAction.ID, GlobalNewFileAction.LABEL, { primary: KeyMod.CtrlCmd | KeyCode.KEY_N }), category, ['new', 'file']); </del> <ins> workbenchActionsRegistry.registerWorkbenchAction(new SyncActionDescriptor(GlobalNewUntitledFileAction, GlobalNewUntitledFileAction.ID, GlobalNewUntitledFileAction.LABEL, { primary: KeyMod.CtrlCmd | KeyCode.KEY_N }), category, ['new', 'untitled', 'file']); </ins> workbenchActionsRegistry.registerWorkbenchAction(new SyncActionDescriptor(GlobalCopyPathAction, GlobalCopyPathAction.ID, GlobalCopyPathAction.LABEL, { primary: KeyMod.chord(KeyMod.CtrlCmd | KeyCode.KEY_K, KeyCode.KEY_P) }), category, ['copy', 'path']); workbenchActionsRegistry.registerWorkbenchAction(new SyncActionDescriptor(GlobalRevealInOSAction, GlobalRevealInOSAction.ID, GlobalRevealInOSAction.LABEL, { primary: KeyMod.chord(KeyMod.CtrlCmd | KeyCode.KEY_K, KeyCode.KEY_R) }), category, ['reveal', 'file']);
const DEFAULT_WINDOWS_FONT_FAMILY = 'Consolas, 'Courier New', monospace'; const DEFAULT_MAC_FONT_FAMILY = 'Menlo, Monaco, 'Courier New', monospace'; <del> const DEFAULT_LINUX_FONT_FAMILY = ''Droid Sans Mono', 'Courier New', monospace, 'Droid Sans Fallback''; </del> <ins> const DEFAULT_LINUX_FONT_FAMILY = ''Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback''; </ins> /** * @internal
["(", ")"] ], "autoClosingPairs": [ <del> ["{", "}"], ["[", "]"], ["(", ")"], [""", """], ["'", "'"] </del> <ins> { "open": "{", "close": "}" }, { "open": "[", "close": "]" }, { "open": "(", "close": ")" }, { "open": """, "close": """, "notIn": ["string"] }, { "open": "'", "close": "'", "notIn": ["string", "comment"] } </ins> ], "surroundingPairs": [ ["{", "}"],
import * as nls from 'vs/nls'; import { KeyCode, KeyMod } from 'vs/base/common/keyCodes'; <ins> import { isLowSurrogate, isHighSurrogate } from 'vs/base/common/strings'; </ins> import { Range } from 'vs/editor/common/core/range'; <ins> import { Position, IPosition } from 'vs/editor/common/core/position'; </ins> import { ICommand } from 'vs/editor/common/editorCommon'; import { EditorContextKeys } from 'vs/editor/common/editorContextKeys'; import { registerEditorAction, EditorAction, ServicesAccessor } from 'vs/editor/browser/editorExtensions'; import { ReplaceCommand } from 'vs/editor/common/commands/replaceCommand'; import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; <ins> import { ITextModel } from 'vs/editor/common/model'; </ins> class TransposeLettersAction extends EditorAction { <ins> private positionLeftOf(start: IPosition, model: ITextModel): Position { let column = start.column; let lineNumber = start.lineNumber; if (column > model.getLineMinColumn(lineNumber)) { if (isLowSurrogate(model.getLineContent(lineNumber).charCodeAt(column - 2))) { // character before column is a low surrogate column = column - 2; } else { column = column - 1; } } else if (lineNumber > 1) { lineNumber = lineNumber - 1; column = model.getLineMaxColumn(lineNumber); } return new Position(lineNumber, column); } private positionRightOf(start: IPosition, model: ITextModel): Position { let column = start.column; let lineNumber = start.lineNumber; if (column < model.getLineMaxColumn(lineNumber)) { if (isHighSurrogate(model.getLineContent(lineNumber).charCodeAt(column - 1))) { // character after column is a high surrogate column = column + 2; } else { column = column + 1; } } else if (lineNumber < model.getLineCount()) { lineNumber = lineNumber + 1; column = 0; } return new Position(lineNumber, column); } </ins> constructor() { super({ id: 'editor.action.transposeLetters',
let commands: ICommand[] = []; let selections = editor.getSelections(); <del> for (let i = 0; i < selections.length; i++) { let selection = selections[i]; </del> <ins> for (let selection of selections) { </ins> if (!selection.isEmpty()) { continue; } let lineNumber = selection.startLineNumber; let column = selection.startColumn; <del> if (column === 1) { // at the beginning of line continue; } let maxColumn = model.getLineMaxColumn(lineNumber); if (column === maxColumn) { // at the end of line </del> <ins> let lastColumn = model.getLineMaxColumn(lineNumber); if (lineNumber === 1 && (column === 1 || (column === 2 && lastColumn === 2))) { // at beginning of file, nothing to do </ins> continue; } <del> let lineContent = model.getLineContent(lineNumber); let charToTheLeft = lineContent.charAt(column - 2); let charToTheRight = lineContent.charAt(column - 1); </del> <ins> // handle special case: when at end of line, transpose left two chars // otherwise, transpose left and right chars let endPosition = (column === lastColumn) ? selection.getPosition() : this.positionRightOf(selection.getPosition(), model); let middlePosition = this.positionLeftOf(endPosition, model); let beginPosition = this.positionLeftOf(middlePosition, model); </ins> <del> let replaceRange = new Range(lineNumber, column - 1, lineNumber, column + 1); </del> <ins> let leftChar = model.getValueInRange(Range.fromPositions(beginPosition, middlePosition)); let rightChar = model.getValueInRange(Range.fromPositions(middlePosition, endPosition)); </ins> <del> commands.push(new ReplaceCommand(replaceRange, charToTheRight + charToTheLeft)); </del> <ins> let replaceRange = Range.fromPositions(beginPosition, endPosition); commands.push(new ReplaceCommand(replaceRange, rightChar + leftChar)); </ins> } if (commands.length > 0) {
import DOM = require('vs/base/browser/dom'); import URI from 'vs/base/common/uri'; import errors = require('vs/base/common/errors'); <ins> import {RunOnceScheduler} from 'vs/base/common/async'; </ins> import {isMacintosh} from 'vs/base/common/platform'; import {IWorkbenchEditorService} from 'vs/workbench/services/editor/common/editorService'; import {IContextMenuService} from 'vs/platform/contextview/browser/contextView';
this._onGroupFocusChanged = new Emitter<void>(); <del> this.toDispose = []; </del> <ins> this.onStacksChangeScheduler = new RunOnceScheduler(() => this.handleStacksChanged(), 0); this.toDispose.push(this.onStacksChangeScheduler); this.stacksChangedBuffer = []; </ins> this.create(this.parent); this.registerListeners();
} private onStacksChanged(e: IStacksModelChangeEvent): void { <ins> this.stacksChangedBuffer.push(e); this.onStacksChangeScheduler.schedule(); } private handleStacksChanged(): void { </ins> <del> // Up to date context </del> <ins> // Read and reset buffer of events const buffer = this.stacksChangedBuffer; this.stacksChangedBuffer = []; // Up to date context for all title controls </ins> POSITIONS.forEach(position => { <del> this.getTitleAreaControl(position).setContext(this.stacks.groupAt(position)); </del> <ins> const titleAreaControl = this.getTitleAreaControl(position); const context = this.stacks.groupAt(position); titleAreaControl.setContext(context); if (!context) { titleAreaControl.refresh(); // clear out the control if the context is no longer present } </ins> }); // Refresh / update if group is visible and has a position <del> const position = this.stacks.positionOfGroup(e.group); if (position >= 0) { if (e.structural) { this.getTitleAreaControl(position).refresh(); } else { this.getTitleAreaControl(position).update(); </del> <ins> buffer.forEach(e => { const position = this.stacks.positionOfGroup(e.group); if (position >= 0) { // group could be gone by now because we run from a scheduler with timeout if (e.structural) { this.getTitleAreaControl(position).refresh(); } else { this.getTitleAreaControl(position).update(); } </ins> } <del> } </del> <ins> }); </ins> } public get onGroupFocusChanged(): Event<void> {
private rochade(from: Position, to: Position): void { <del> // Move editor to new position </del> <ins> // Move container to new position const containerFrom = this.silos[from].child(); containerFrom.appendTo(this.silos[to]); const containerTo = this.silos[to].child(); containerTo.appendTo(this.silos[from]); // Inform editor </ins> const editor = this.visibleEditors[from]; <del> editor.getContainer().offDOM().build(this.silos[to].child()); </del> editor.changePosition(to); // Change data structures
// Distance 1: Swap Editors if (Math.abs(from - to) === 1) { <del> // Move editors to new position let editorPos1 = this.visibleEditors[from]; editorPos1.getContainer().offDOM().build(this.silos[to].child()); editorPos1.changePosition(to); </del> <ins> // Move containers to new position const containerFrom = this.silos[from].child(); containerFrom.appendTo(this.silos[to]); const containerTo = this.silos[to].child(); containerTo.appendTo(this.silos[from]); </ins> <del> let editorPos2 = this.visibleEditors[to]; editorPos2.getContainer().offDOM().build(this.silos[from].child()); editorPos2.changePosition(from); </del> <ins> // Inform Editors this.visibleEditors[from].changePosition(to); this.visibleEditors[to].changePosition(from); </ins> // Update last active position accordingly if (this.lastActivePosition === from) {
newRightPosition = Position.LEFT; } <del> // Move editors to new position let editorPos1 = this.visibleEditors[Position.LEFT]; editorPos1.getContainer().offDOM().build(this.silos[newLeftPosition].child()); editorPos1.changePosition(newLeftPosition); </del> <ins> // Move containers to new position const containerPos1 = this.silos[Position.LEFT].child(); containerPos1.appendTo(this.silos[newLeftPosition]); </ins> <del> let editorPos2 = this.visibleEditors[Position.CENTER]; editorPos2.getContainer().offDOM().build(this.silos[newCenterPosition].child()); editorPos2.changePosition(newCenterPosition); </del> <ins> const containerPos2 = this.silos[Position.CENTER].child(); containerPos2.appendTo(this.silos[newCenterPosition]); </ins> <del> const editorPos3 = this.visibleEditors[Position.RIGHT]; editorPos3.getContainer().offDOM().build(this.silos[newRightPosition].child()); editorPos3.changePosition(newRightPosition); </del> <ins> const containerPos3 = this.silos[Position.RIGHT].child(); containerPos3.appendTo(this.silos[newRightPosition]); // Inform Editors this.visibleEditors[Position.LEFT].changePosition(newLeftPosition); this.visibleEditors[Position.CENTER].changePosition(newCenterPosition); this.visibleEditors[Position.RIGHT].changePosition(newRightPosition); </ins> // Update last active position accordingly if (this.lastActivePosition === Position.LEFT) {
const titleAreaControl = instantiationService.createInstance<ITitleAreaControl>(useTabs ? TabsTitleControl : NoTabsTitleControl); titleAreaControl.create(container.getHTMLElement()); titleAreaControl.setContext(context); <del> titleAreaControl.refresh(); </del> <ins> titleAreaControl.refresh(true /* instant */); </ins> silo.child().setProperty(SideBySideEditorControl.TITLE_AREA_CONTROL_KEY, titleAreaControl); // associate with container }
this._readOnly = this._context.configuration.editor.readOnly; this._cursorBlinking = this._context.configuration.editor.viewInfo.cursorBlinking; this._cursorStyle = this._context.configuration.editor.viewInfo.cursorStyle; <del> this._canUseTranslate3d = context.configuration.editor.viewInfo.canUseTranslate3d; </del> this._primaryCursor = new ViewCursor(this._context, false); this._secondaryCursors = [];
if (e.viewInfo.cursorStyle) { this._cursorStyle = this._context.configuration.editor.viewInfo.cursorStyle; } <del> if (e.viewInfo.canUseTranslate3d) { this._canUseTranslate3d = this._context.configuration.editor.viewInfo.canUseTranslate3d; } </del> this._primaryCursor.onConfigurationChanged(e); this._updateBlinking();
for (var i = 0, len = this._secondaryCursors.length; i < len; i++) { this._secondaryCursors[i].render(ctx); } <del> if (this._canUseTranslate3d) { this._domNode.setTransform('translate3d(0px, 0px, 0px)'); } else { this._domNode.setTransform(''); } </del> } }
{ <del> "configuration.validate.enable": "Whether php validation is enabled or not.", "configuration.validate.executablePath": "Points to the php executable.", </del> <ins> "configuration.builtInCompletions.enable": "Enable/disable built-in PHP completions.", "configuration.validate.enable": "Enable/disable built-in PHP validation.", "configuration.validate.executablePath": "Points to the PHP executable.", </ins> "configuration.validate.run": "Whether the linter is run on save or on type.", "configuration.title": "PHP" }  No newline at end of file
'use strict'; <del> import { CompletionItemProvider, CompletionItem, CompletionItemKind, CancellationToken, TextDocument, Position, Range, TextEdit } from 'vscode'; </del> <ins> import { CompletionItemProvider, CompletionItem, CompletionItemKind, CancellationToken, TextDocument, Position, Range, TextEdit, workspace } from 'vscode'; </ins> import phpGlobals = require('./phpGlobals'); export default class PHPCompletionItemProvider implements CompletionItemProvider {
public provideCompletionItems(document: TextDocument, position: Position, token: CancellationToken): Promise<CompletionItem[]> { let result: CompletionItem[] = []; <ins> let shouldProvideCompletionItems = workspace.getConfiguration('php').get<boolean>('builtInCompletions.enable', true); if (!shouldProvideCompletionItems) { return Promise.resolve(result); } </ins> var range = document.getWordRangeAtPosition(position); var prefix = range ? document.getText(range) : ''; if (!range) {
<!-- seperator    [ ]{0,3}([-*_][ ]{0,2}2){2,}[ t]*$n? --> <!-- list         [ ]{0,3}[*+-]([ ]{1,3}|t) --> <!-- both are folded together in the expression below --> <del> <string>(^|G)(?!s*$|#|[ ]{0,3}((([-*_][ ]{0,2}2){2,}[ t]*$n?)|([*+-]([ ]{1,3}|t)))|s*[.+?]:|&gt;)</string> </del> <ins> <string>(^|G)(?!s*$|#|[ ]{0,3}((([*_][ ]{0,2}2){2,}[ t]*$n?)|([*+-]([ ]{1,3}|t)))|s*[.+?]:|&gt;)</string> </ins> </dict> <key>raw_block</key> <dict>
<key>separator</key> <dict> <key>match</key> <del> <string>(^|G)[ ]{0,3}([-*_])([ ]{0,2}2){2,}[ t]*$n?</string> </del> <ins> <string>(^|G)[ ]{0,3}([*-_])([ ]{0,2}2){2,}[ t]*$n?</string> </ins> <key>name</key> <string>meta.separator.markdown</string> </dict>
@keyframes cursor-smooth { 0%, 20% { <del> opacity: 0; </del> <ins> opacity: 1; </ins> } 60%, 100% { <del> opacity: 1; </del> <ins> opacity: 0; </ins> } } @keyframes cursor-phase { 0%, 20% { <del> opacity: 0; </del> <ins> opacity: 1; </ins> } 90%, 100% { <del> opacity: 1; </del> <ins> opacity: 0; </ins> } } @keyframes cursor-expand { 0%, 20% { <del> transform: scaleY(0); </del> <ins> transform: scaleY(1); </ins> } 80%, 100% { <del> transform: scaleY(1); </del> <ins> transform: scaleY(0); </ins> } }
.monaco-workbench .terminal-action.new { background: url('new.svg') center center no-repeat; } /* Dark theme / HC theme */ .vs-dark .monaco-workbench .terminal-action.kill, .hc-black .monaco-workbench .terminal-action.kill { background: url('kill-inverse.svg') center center no-repeat; } <del> .vs-dark .monaco-workbench .terminal-action.new, .hc-black .monaco-workbench .terminal-action.new { background: url('new-inverse.svg') center center no-repeat; } </del>  No newline at end of file <ins> .vs-dark .monaco-workbench .terminal-action.new, .hc-black .monaco-workbench .terminal-action.new { background: url('new-inverse.svg') center center no-repeat; } .vs-dark .monaco-workbench.mac .panel.integrated-terminal .xterm-rows, .hc-black .monaco-workbench.mac .panel.integrated-terminal .xterm-rows { cursor: -webkit-image-set(url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAL0lEQVQoz2NgCD3x//9/BhBYBWdhgFVAiVW4JBFKGIa4AqD0//9D3pt4I4tAdAMAHTQ/j5Zom30AAAAASUVORK5CYII=') 1x, url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAAz0lEQVRIx2NgYGBY/R8I/vx5eelX3n82IJ9FxGf6tksvf/8FiTMQAcAGQMDvSwu09abffY8QYSAScNk45G198eX//yev73/4///701eh//kZSARckrNBRvz//+8+6ZohwCzjGNjdgQxkAg7B9WADeBjIBqtJCbhRA0YNoIkBSNmaPEMoNmA0FkYNoFKhapJ6FGyAH3nauaSmPfwI0v/3OukVi0CIZ+F25KrtYcx/CTIy0e+rC7R1Z4KMICVTQQ14feVXIbR695u14+Ir4gwAAD49E54wc1kWAAAAAElFTkSuQmCC') 2x) 5 8, text; } </ins>  No newline at end of file
import {SyncDescriptor} from 'vs/platform/instantiation/common/descriptors'; import {KeyMod, KeyChord, KeyCode} from 'vs/base/common/keyCodes'; import {CloseEditorsInGroupAction, CloseEditorsInOtherGroupsAction, CloseAllEditorsAction, MoveGroupLeftAction, MoveGroupRightAction, SplitEditorAction, KeepEditorAction, CloseOtherEditorsInGroupAction, OpenToSideAction, <del> NavigateBetweenGroupsAction, FocusFirstGroupAction, FocusSecondGroupAction, FocusThirdGroupAction, EvenGroupWidthsAction, MaximizeGroupAction, MinimizeOtherGroupsAction, FocusPreviousGroup, FocusNextGroup, ShowEditorsInLeftGroupAction, </del> <ins> NavigateBetweenGroupsAction, FocusActiveGroupAction, FocusFirstGroupAction, FocusSecondGroupAction, FocusThirdGroupAction, EvenGroupWidthsAction, MaximizeGroupAction, MinimizeOtherGroupsAction, FocusPreviousGroup, FocusNextGroup, ShowEditorsInLeftGroupAction, </ins> toEditorQuickOpenEntry, CloseLeftEditorsInGroupAction, CloseRightEditorsInGroupAction, OpenNextEditor, OpenPreviousEditor, NavigateBackwardsAction, NavigateForwardAction, ReopenClosedEditorAction, OpenPreviousRecentlyUsedEditorInGroupAction, NAVIGATE_IN_LEFT_GROUP_PREFIX, OpenPreviousEditorFromHistoryAction, ShowAllEditorsAction, NAVIGATE_ALL_EDITORS_GROUP_PREFIX, ClearEditorHistoryAction, ShowEditorsInCenterGroupAction, MoveEditorRightInGroupAction, NAVIGATE_IN_CENTER_GROUP_PREFIX, ShowEditorsInRightGroupAction, NAVIGATE_IN_RIGHT_GROUP_PREFIX, RemoveFromEditorHistoryAction, FocusLastEditorInStackAction, OpenNextRecentlyUsedEditorInGroupAction, MoveEditorToLeftGroupAction, MoveEditorToRightGroupAction, MoveEditorLeftInGroupAction
registry.registerWorkbenchAction(new SyncActionDescriptor(CloseEditorsInOtherGroupsAction, CloseEditorsInOtherGroupsAction.ID, CloseEditorsInOtherGroupsAction.LABEL), 'View: Close Editors in Other Groups', category); registry.registerWorkbenchAction(new SyncActionDescriptor(SplitEditorAction, SplitEditorAction.ID, SplitEditorAction.LABEL, { primary: KeyMod.CtrlCmd | KeyCode.US_BACKSLASH }), 'View: Split Editor', category); registry.registerWorkbenchAction(new SyncActionDescriptor(NavigateBetweenGroupsAction, NavigateBetweenGroupsAction.ID, NavigateBetweenGroupsAction.LABEL), 'View: Navigate Between Editor Groups', category); <ins> registry.registerWorkbenchAction(new SyncActionDescriptor(FocusActiveGroupAction, FocusActiveGroupAction.ID, FocusActiveGroupAction.LABEL), 'View: Focus Active Editor Group', category); </ins> registry.registerWorkbenchAction(new SyncActionDescriptor(FocusFirstGroupAction, FocusFirstGroupAction.ID, FocusFirstGroupAction.LABEL, { primary: KeyMod.CtrlCmd | KeyCode.KEY_1 }), 'View: Focus Left Editor Group', category); registry.registerWorkbenchAction(new SyncActionDescriptor(FocusSecondGroupAction, FocusSecondGroupAction.ID, FocusSecondGroupAction.LABEL, { primary: KeyMod.CtrlCmd | KeyCode.KEY_2 }), 'View: Focus Center Editor Group', category); registry.registerWorkbenchAction(new SyncActionDescriptor(FocusThirdGroupAction, FocusThirdGroupAction.ID, FocusThirdGroupAction.LABEL, { primary: KeyMod.CtrlCmd | KeyCode.KEY_3 }), 'View: Focus Right Editor Group', category);
} } <ins> export class FocusActiveGroupAction extends Action { public static ID = 'workbench.action.focusActiveEditorGroup'; public static LABEL = nls.localize('focusActiveEditorGroup', "Focus Active Editor Group"); constructor( id: string, label: string, @IWorkbenchEditorService private editorService: IWorkbenchEditorService ) { super(id, label); } public run(): TPromise<any> { const activeEditor = this.editorService.getActiveEditor(); if (activeEditor) { activeEditor.focus(); } return TPromise.as(true); } } </ins> export class FocusFirstGroupAction extends Action { public static ID = 'workbench.action.focusFirstEditorGroup';
"markdown.styles": { "type": ["array"], "default": [], <del> "description": "A list of URLs or local paths to CSS style sheets to use from the markdown preview. Relative paths are interpreted relative to the folder open in the explorer. If there is no open folder, they are interpreted relative to the location of the markdown file. All '' need to be written as ''." </del> <ins> "description": "%markdown.styles.dec%" </ins> }, "markdown.previewFrontMatter": { "type": ["string"], "default": "hide", <del> "description": "Sets how YAML front matter should be rendered in the markdown preview. 'hide' removes the front matter. Otherwise, the front matter is treated as markdown content" </del> <ins> "description": "%markdown.previewFrontMatter.dec%" </ins> } } }
{ "markdown.preview.title" : "Open Preview", "markdown.previewSide.title" : "Open Preview to the Side", <del> "markdown.showSource.title" : "Show Source" </del> <ins> "markdown.showSource.title" : "Show Source", "markdown.styles.dec": "A list of URLs or local paths to CSS style sheets to use from the markdown preview. Relative paths are interpreted relative to the folder open in the explorer. If there is no open folder, they are interpreted relative to the location of the markdown file. All '' need to be written as ''.", "markdown.previewFrontMatter.dec": "Sets how YAML front matter should be rendered in the markdown preview. 'hide' removes the front matter. Otherwise, the front matter is treated as markdown content" </ins> }  No newline at end of file
<ins> { "comments": { "lineComment": ";", "blockComment": [ ";", " " ] }, "brackets": [ ["{", "}"], ["[", "]"], ["(", ")"] ], "autoClosingPairs": [ ["{", "}"], ["[", "]"], ["(", ")"], [""", """], ["'", "'"] ], "surroundingPairs": [ ["{", "}"], ["[", "]"], ["(", ")"], [""", """], ["'", "'"] ] } </ins>  No newline at end of file
<del> { "comments": { "lineComment": "#", "blockComment": [ "#", " " ] }, "brackets": [ ["{", "}"], ["[", "]"], ["(", ")"] ], "autoClosingPairs": [ ["{", "}"], ["[", "]"], ["(", ")"], [""", """], ["'", "'"] ], "surroundingPairs": [ ["{", "}"], ["[", "]"], ["(", ")"], [""", """], ["'", "'"] ] } </del>  No newline at end of file
"contributes": { "languages": [{ "id": "ini", <del> "extensions": [ ".ini", ".properties", ".gitconfig" ], "filenames": ["config", ".gitattributes", ".gitconfig", "gitconfig", ".editorconfig"], </del> <ins> "extensions": [ ".ini"], </ins> "aliases": [ "Ini", "ini" ], <del> "configuration": "./language-configuration.json" }], </del> <ins> "configuration": "./ini.language-configuration.json" }, { "id": "properties", "extensions": [ ".properties", ".gitconfig" ], "filenames": ["config", ".gitattributes", ".gitconfig", "gitconfig", ".editorconfig"], "aliases": [ "properties", "properties" ], "configuration": "./properties.language-configuration.json" } ], </ins> "grammars": [{ "language": "ini", "scopeName": "source.ini", <del> "path": "./syntaxes/Ini.plist" </del> <ins> "path": "./syntaxes/Ini.tmLanuage" },{ "language": "properties", "scopeName": "source.properties", "path": "./syntaxes/properties.plist" </ins> }] } }