mirror of
https://github.com/VSCodeVim/Vim.git
synced 2024-09-21 09:07:56 +03:00
export Configuration. rename all imports to use lower-case singleton
This commit is contained in:
parent
def2b28027
commit
3749394f25
22
extension.ts
22
extension.ts
@ -10,7 +10,7 @@ import * as vscode from 'vscode';
|
||||
|
||||
import { CommandLine } from './src/cmd_line/commandLine';
|
||||
import { Position } from './src/common/motion/position';
|
||||
import { Configuration } from './src/configuration/configuration';
|
||||
import { configuration } from './src/configuration/configuration';
|
||||
import { EditorIdentity } from './src/editorIdentity';
|
||||
import { Globals } from './src/globals';
|
||||
import { ModeName } from './src/mode/mode';
|
||||
@ -35,7 +35,7 @@ export async function getAndUpdateModeHandler(): Promise<ModeHandler> {
|
||||
|
||||
let [curHandler, isNewModeHandler] = await ModeHandlerMap.getOrCreate(activeEditorId.toString());
|
||||
if (isNewModeHandler) {
|
||||
if (Configuration.enableNeovim) {
|
||||
if (configuration.enableNeovim) {
|
||||
await Neovim.initNvim(curHandler.vimState);
|
||||
}
|
||||
extensionContext.subscriptions.push(curHandler);
|
||||
@ -94,13 +94,13 @@ export async function activate(context: vscode.ExtensionContext) {
|
||||
|
||||
// Event to update active configuration items when changed without restarting vscode
|
||||
vscode.workspace.onDidChangeConfiguration(() => {
|
||||
Configuration.reload();
|
||||
configuration.reload();
|
||||
});
|
||||
|
||||
vscode.window.onDidChangeActiveTextEditor(handleActiveEditorChange, this);
|
||||
|
||||
vscode.workspace.onDidChangeTextDocument(event => {
|
||||
if (Configuration.disableExt) {
|
||||
if (configuration.disableExt) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -209,7 +209,7 @@ export async function activate(context: vscode.ExtensionContext) {
|
||||
const mh = await getAndUpdateModeHandler();
|
||||
if (args.after) {
|
||||
for (const key of args.after) {
|
||||
await mh.handleKeyEvent(Notation.NormalizeKey(key, Configuration.leader));
|
||||
await mh.handleKeyEvent(Notation.NormalizeKey(key, configuration.leader));
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -263,11 +263,11 @@ export async function activate(context: vscode.ExtensionContext) {
|
||||
}
|
||||
|
||||
registerCommand(context, 'toggleVim', async () => {
|
||||
Configuration.disableExt = !Configuration.disableExt;
|
||||
toggleExtension(Configuration.disableExt);
|
||||
configuration.disableExt = !configuration.disableExt;
|
||||
toggleExtension(configuration.disableExt);
|
||||
});
|
||||
|
||||
for (const boundKey of Configuration.boundKeyCombinations) {
|
||||
for (const boundKey of configuration.boundKeyCombinations) {
|
||||
registerCommand(context, boundKey.command, () => handleKeyEvent(`${boundKey.key}`));
|
||||
}
|
||||
|
||||
@ -278,7 +278,7 @@ export async function activate(context: vscode.ExtensionContext) {
|
||||
}
|
||||
|
||||
// This is called last because getAndUpdateModeHandler() will change cursor
|
||||
toggleExtension(Configuration.disableExt);
|
||||
toggleExtension(configuration.disableExt);
|
||||
}
|
||||
|
||||
function overrideCommand(
|
||||
@ -287,7 +287,7 @@ function overrideCommand(
|
||||
callback: (...args: any[]) => any
|
||||
) {
|
||||
const disposable = vscode.commands.registerCommand(command, async args => {
|
||||
if (Configuration.disableExt) {
|
||||
if (configuration.disableExt) {
|
||||
await vscode.commands.executeCommand('default:' + command, args);
|
||||
return;
|
||||
}
|
||||
@ -342,7 +342,7 @@ function handleContentChangedFromDisk(document: vscode.TextDocument): void {
|
||||
}
|
||||
|
||||
async function handleActiveEditorChange(): Promise<void> {
|
||||
if (Configuration.disableExt) {
|
||||
if (configuration.disableExt) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { Configuration } from './../configuration/configuration';
|
||||
import { configuration } from './../configuration/configuration';
|
||||
import { ModeName } from './../mode/mode';
|
||||
import { VimState } from './../state/vimState';
|
||||
|
||||
@ -63,17 +63,17 @@ export let compareKeypressSequence = function(one: string[] | string[][], two: s
|
||||
continue;
|
||||
}
|
||||
|
||||
if (left === '<leader>' && right === Configuration.leader) {
|
||||
if (left === '<leader>' && right === configuration.leader) {
|
||||
continue;
|
||||
}
|
||||
if (right === '<leader>' && left === Configuration.leader) {
|
||||
if (right === '<leader>' && left === configuration.leader) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (left === Configuration.leader) {
|
||||
if (left === configuration.leader) {
|
||||
return false;
|
||||
}
|
||||
if (right === Configuration.leader) {
|
||||
if (right === configuration.leader) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -11,7 +11,7 @@ import { Tab, TabCommand } from './../../cmd_line/commands/tab';
|
||||
import { Position, PositionDiff } from './../../common/motion/position';
|
||||
import { Range } from './../../common/motion/range';
|
||||
import { NumericString } from './../../common/number/numericString';
|
||||
import { Configuration } from './../../configuration/configuration';
|
||||
import { configuration } from './../../configuration/configuration';
|
||||
import { ModeName } from './../../mode/mode';
|
||||
import { VisualBlockMode } from './../../mode/modes';
|
||||
import { Register, RegisterMode } from './../../register/register';
|
||||
@ -795,7 +795,7 @@ class CommandInsertInSearchMode extends BaseCommand {
|
||||
}
|
||||
|
||||
// Make sure search history does not exceed configuration option
|
||||
if (vimState.globalState.searchStatePrevious.length > Configuration.history) {
|
||||
if (vimState.globalState.searchStatePrevious.length > configuration.history) {
|
||||
vimState.globalState.searchStatePrevious.splice(0, 1);
|
||||
}
|
||||
|
||||
@ -1514,7 +1514,7 @@ export class PutCommandVisual extends BaseCommand {
|
||||
// linewise but not necessarily delete linewise.
|
||||
let putResult = await new PutCommand(this.multicursorIndex).exec(start, vimState, true);
|
||||
putResult.currentRegisterMode = isLineWise ? RegisterMode.LineWise : RegisterMode.CharacterWise;
|
||||
putResult.recordedState.registerName = Configuration.useSystemClipboard ? '*' : '"';
|
||||
putResult.recordedState.registerName = configuration.useSystemClipboard ? '*' : '"';
|
||||
putResult = await new operator.YankOperator(this.multicursorIndex).run(putResult, start, end);
|
||||
putResult.currentRegisterMode = RegisterMode.CharacterWise;
|
||||
putResult = await new operator.DeleteOperator(this.multicursorIndex).run(
|
||||
|
@ -4,7 +4,7 @@ import { RecordedState } from '../../state/recordedState';
|
||||
import { VimState } from '../../state/vimState';
|
||||
import { Position, PositionDiff } from './../../common/motion/position';
|
||||
import { Range } from './../../common/motion/range';
|
||||
import { Configuration } from './../../configuration/configuration';
|
||||
import { configuration } from './../../configuration/configuration';
|
||||
import { ModeName } from './../../mode/mode';
|
||||
import { Register, RegisterMode } from './../../register/register';
|
||||
import { TextEditor } from './../../textEditor';
|
||||
@ -194,7 +194,7 @@ class CommandInsertIndentInCurrentLine extends BaseCommand {
|
||||
public async exec(position: Position, vimState: VimState): Promise<VimState> {
|
||||
const originalText = TextEditor.getLineAt(position).text;
|
||||
const indentationWidth = TextEditor.getIndentationLevel(originalText);
|
||||
const tabSize = Configuration.tabstop || Number(vimState.editor.options.tabSize);
|
||||
const tabSize = configuration.tabstop || Number(vimState.editor.options.tabSize);
|
||||
const newIndentationWidth = (indentationWidth / tabSize + 1) * tabSize;
|
||||
|
||||
TextEditor.replaceText(
|
||||
@ -246,7 +246,7 @@ export class CommandInsertInInsertMode extends BaseCommand {
|
||||
range: new Range(selection.start as Position, selection.end as Position),
|
||||
});
|
||||
} else {
|
||||
if (line.length > 0 && line.match(/^ +$/) && Configuration.expandtab) {
|
||||
if (line.length > 0 && line.match(/^ +$/) && configuration.expandtab) {
|
||||
// If the line is empty except whitespace, backspace should return to
|
||||
// the next lowest level of indentation.
|
||||
|
||||
@ -391,7 +391,7 @@ class CommandDeleteIndentInCurrentLine extends BaseCommand {
|
||||
return vimState;
|
||||
}
|
||||
|
||||
const tabSize = Configuration.tabstop;
|
||||
const tabSize = configuration.tabstop;
|
||||
const newIndentationWidth = (indentationWidth / tabSize - 1) * tabSize;
|
||||
|
||||
await TextEditor.replace(
|
||||
|
@ -4,7 +4,7 @@ import { PairMatcher } from './../common/matching/matcher';
|
||||
import { QuoteMatcher } from './../common/matching/quoteMatcher';
|
||||
import { TagMatcher } from './../common/matching/tagMatcher';
|
||||
import { Position, PositionDiff } from './../common/motion/position';
|
||||
import { Configuration } from './../configuration/configuration';
|
||||
import { configuration } from './../configuration/configuration';
|
||||
import { ModeName } from './../mode/mode';
|
||||
import { RegisterMode } from './../register/register';
|
||||
import { ReplaceState } from './../state/replaceState';
|
||||
@ -279,7 +279,7 @@ class MoveDown extends BaseMovement {
|
||||
doesntChangeDesiredColumn = true;
|
||||
|
||||
public async execAction(position: Position, vimState: VimState): Promise<Position | IMovement> {
|
||||
if (Configuration.foldfix && vimState.currentMode !== ModeName.VisualBlock) {
|
||||
if (configuration.foldfix && vimState.currentMode !== ModeName.VisualBlock) {
|
||||
return new MoveDownFoldFix().execAction(position, vimState);
|
||||
}
|
||||
return position.getDown(vimState.desiredColumn);
|
||||
@ -308,7 +308,7 @@ class MoveUp extends BaseMovement {
|
||||
doesntChangeDesiredColumn = true;
|
||||
|
||||
public async execAction(position: Position, vimState: VimState): Promise<Position | IMovement> {
|
||||
if (Configuration.foldfix && vimState.currentMode !== ModeName.VisualBlock) {
|
||||
if (configuration.foldfix && vimState.currentMode !== ModeName.VisualBlock) {
|
||||
return new MoveUpFoldFix().execAction(position, vimState);
|
||||
}
|
||||
return position.getUp(vimState.desiredColumn);
|
||||
|
@ -2,7 +2,7 @@ import * as vscode from 'vscode';
|
||||
|
||||
import { Position, PositionDiff } from './../common/motion/position';
|
||||
import { Range } from './../common/motion/range';
|
||||
import { Configuration } from './../configuration/configuration';
|
||||
import { configuration } from './../configuration/configuration';
|
||||
import { ModeName } from './../mode/mode';
|
||||
import { Register, RegisterMode } from './../register/register';
|
||||
import { VimState } from './../state/vimState';
|
||||
@ -746,7 +746,7 @@ class ActionVisualReflowParagraph extends BaseOperator {
|
||||
}
|
||||
|
||||
public reflowParagraph(s: string, indentLevel: number): string {
|
||||
const maximumLineLength = Configuration.textwidth - indentLevel - 2;
|
||||
const maximumLineLength = configuration.textwidth - indentLevel - 2;
|
||||
const indent = Array(indentLevel + 1).join(' ');
|
||||
|
||||
// Chunk the lines by commenting style.
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { VimState } from '../../../state/vimState';
|
||||
import { Position } from './../../../common/motion/position';
|
||||
import { Configuration } from './../../../configuration/configuration';
|
||||
import { configuration } from './../../../configuration/configuration';
|
||||
import { ModeName } from './../../../mode/mode';
|
||||
import { RegisterAction } from './../../base';
|
||||
import { BaseCommand } from './../../commands/actions';
|
||||
@ -71,7 +71,7 @@ abstract class BaseEasyMotionCommand extends BaseCommand {
|
||||
|
||||
public async exec(position: Position, vimState: VimState): Promise<VimState> {
|
||||
// Only execute the action if the configuration is set
|
||||
if (!Configuration.easymotion) {
|
||||
if (!configuration.easymotion) {
|
||||
return vimState;
|
||||
} else {
|
||||
// Search all occurences of the character pressed
|
||||
@ -118,7 +118,7 @@ function getMatchesForString(
|
||||
default:
|
||||
// Search all occurences of the character pressed
|
||||
const ignorecase =
|
||||
Configuration.ignorecase && !(Configuration.smartcase && /[A-Z]/.test(searchString));
|
||||
configuration.ignorecase && !(configuration.smartcase && /[A-Z]/.test(searchString));
|
||||
const regexFlags = ignorecase ? 'gi' : 'g';
|
||||
return vimState.easyMotion.sortedSearch(
|
||||
position,
|
||||
@ -258,7 +258,7 @@ export class EasyMotionCharMoveCommandBase extends BaseCommand {
|
||||
|
||||
public async exec(position: Position, vimState: VimState): Promise<VimState> {
|
||||
// Only execute the action if easymotion is enabled
|
||||
if (!Configuration.easymotion) {
|
||||
if (!configuration.easymotion) {
|
||||
return vimState;
|
||||
} else {
|
||||
vimState.easyMotion = new EasyMotion();
|
||||
|
@ -1,7 +1,7 @@
|
||||
import * as vscode from 'vscode';
|
||||
|
||||
import { Position } from './../../../common/motion/position';
|
||||
import { Configuration } from './../../../configuration/configuration';
|
||||
import { configuration } from './../../../configuration/configuration';
|
||||
import { TextEditor } from './../../../textEditor';
|
||||
import { EasyMotionSearchAction } from './easymotion.cmd';
|
||||
import { MarkerGenerator } from './markerGenerator';
|
||||
@ -209,7 +209,7 @@ export class EasyMotion {
|
||||
|
||||
private getEasymotionMarkerBackgroundColor() {
|
||||
return this.getMarkerColor(
|
||||
Configuration.easymotionMarkerBackgroundColor,
|
||||
configuration.easymotionMarkerBackgroundColor,
|
||||
'#000',
|
||||
'activityBarBadge.background'
|
||||
);
|
||||
@ -217,7 +217,7 @@ export class EasyMotion {
|
||||
|
||||
private getEasymotionMarkerForegroundColorOneChar() {
|
||||
return this.getMarkerColor(
|
||||
Configuration.easymotionMarkerForegroundColorOneChar,
|
||||
configuration.easymotionMarkerForegroundColorOneChar,
|
||||
'#f00',
|
||||
'activityBarBadge.foreground'
|
||||
);
|
||||
@ -225,7 +225,7 @@ export class EasyMotion {
|
||||
|
||||
private getEasymotionMarkerForegroundColorTwoChar() {
|
||||
return this.getMarkerColor(
|
||||
Configuration.easymotionMarkerForegroundColorTwoChar,
|
||||
configuration.easymotionMarkerForegroundColorTwoChar,
|
||||
'#ffa500',
|
||||
'activityBarBadge.foreground'
|
||||
);
|
||||
@ -256,16 +256,16 @@ export class EasyMotion {
|
||||
after: {
|
||||
contentText: keystroke,
|
||||
backgroundColor: this.getEasymotionMarkerBackgroundColor(),
|
||||
height: `${Configuration.easymotionMarkerHeight}px`,
|
||||
width: `${keystroke.length * Configuration.easymotionMarkerWidthPerChar}px`,
|
||||
height: `${configuration.easymotionMarkerHeight}px`,
|
||||
width: `${keystroke.length * configuration.easymotionMarkerWidthPerChar}px`,
|
||||
color: fontColor,
|
||||
textDecoration: `none;
|
||||
font-family: ${Configuration.easymotionMarkerFontFamily};
|
||||
font-size: ${Configuration.easymotionMarkerFontSize}px;
|
||||
font-weight: ${Configuration.easymotionMarkerFontWeight};
|
||||
font-family: ${configuration.easymotionMarkerFontFamily};
|
||||
font-size: ${configuration.easymotionMarkerFontSize}px;
|
||||
font-weight: ${configuration.easymotionMarkerFontWeight};
|
||||
position: absolute;
|
||||
z-index: 99;
|
||||
bottom: ${Configuration.easymotionMarkerYOffset}px`,
|
||||
bottom: ${configuration.easymotionMarkerYOffset}px`,
|
||||
},
|
||||
};
|
||||
// Position should be offsetted by the length of the keystroke to prevent hiding behind the gutter
|
||||
|
@ -1,5 +1,5 @@
|
||||
import { Position } from './../../../common/motion/position';
|
||||
import { Configuration } from './../../../configuration/configuration';
|
||||
import { configuration } from './../../../configuration/configuration';
|
||||
import { EasyMotion } from './easymotion';
|
||||
|
||||
export class MarkerGenerator {
|
||||
@ -46,8 +46,8 @@ export class MarkerGenerator {
|
||||
* The key sequence for marker name generation
|
||||
*/
|
||||
private getKeyTable(): string[] {
|
||||
if (Configuration.easymotionKeys) {
|
||||
return Configuration.easymotionKeys.split('');
|
||||
if (configuration.easymotionKeys) {
|
||||
return configuration.easymotionKeys.split('');
|
||||
} else {
|
||||
return 'hklyuiopnm,qwertzxcvbasdgjf;'.split('');
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ import { VimState } from '../../state/vimState';
|
||||
import { PairMatcher } from './../../common/matching/matcher';
|
||||
import { Position } from './../../common/motion/position';
|
||||
import { Range } from './../../common/motion/range';
|
||||
import { Configuration } from './../../configuration/configuration';
|
||||
import { configuration } from './../../configuration/configuration';
|
||||
import { ModeName } from './../../mode/mode';
|
||||
import { TextEditor } from './../../textEditor';
|
||||
import { RegisterAction } from './../base';
|
||||
@ -138,7 +138,7 @@ class CommandSurroundModeStart extends BaseCommand {
|
||||
|
||||
public async exec(position: Position, vimState: VimState): Promise<VimState> {
|
||||
// Only execute the action if the configuration is set
|
||||
if (!Configuration.surround) {
|
||||
if (!configuration.surround) {
|
||||
return vimState;
|
||||
}
|
||||
|
||||
@ -204,7 +204,7 @@ class CommandSurroundModeStartVisual extends BaseCommand {
|
||||
|
||||
public async exec(position: Position, vimState: VimState): Promise<VimState> {
|
||||
// Only execute the action if the configuration is set
|
||||
if (!Configuration.surround) {
|
||||
if (!configuration.surround) {
|
||||
return vimState;
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
import * as vscode from 'vscode';
|
||||
|
||||
import { Configuration } from '../configuration/configuration';
|
||||
import { configuration } from '../configuration/configuration';
|
||||
import { Neovim } from '../neovim/nvimUtil';
|
||||
import { VimState } from '../state/vimState';
|
||||
import { StatusBar } from '../statusBar';
|
||||
@ -16,7 +16,7 @@ export class CommandLine {
|
||||
}
|
||||
|
||||
let cmd = await vscode.window.showInputBox(this.getInputBoxOptions(initialText));
|
||||
if (cmd && cmd[0] === ':' && Configuration.cmdLineInitialColon) {
|
||||
if (cmd && cmd[0] === ':' && configuration.cmdLineInitialColon) {
|
||||
cmd = cmd.slice(1);
|
||||
}
|
||||
|
||||
@ -30,7 +30,7 @@ export class CommandLine {
|
||||
|
||||
try {
|
||||
const cmd = parser.parse(command);
|
||||
const useNeovim = Configuration.enableNeovim && cmd.command && cmd.command.neovimCapable;
|
||||
const useNeovim = configuration.enableNeovim && cmd.command && cmd.command.neovimCapable;
|
||||
|
||||
if (useNeovim) {
|
||||
await Neovim.command(vimState, command);
|
||||
@ -55,11 +55,11 @@ export class CommandLine {
|
||||
private static getInputBoxOptions(text: string): vscode.InputBoxOptions {
|
||||
return {
|
||||
prompt: 'Vim command line',
|
||||
value: Configuration.cmdLineInitialColon ? ':' + text : text,
|
||||
value: configuration.cmdLineInitialColon ? ':' + text : text,
|
||||
ignoreFocusOut: false,
|
||||
valueSelection: [
|
||||
Configuration.cmdLineInitialColon ? text.length + 1 : text.length,
|
||||
Configuration.cmdLineInitialColon ? text.length + 1 : text.length,
|
||||
configuration.cmdLineInitialColon ? text.length + 1 : text.length,
|
||||
configuration.cmdLineInitialColon ? text.length + 1 : text.length,
|
||||
],
|
||||
};
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { Configuration } from '../../configuration/configuration';
|
||||
import { configuration } from '../../configuration/configuration';
|
||||
import * as util from '../../util';
|
||||
import * as node from '../node';
|
||||
|
||||
@ -65,38 +65,38 @@ export class SetOptionsCommand extends node.CommandBase {
|
||||
throw new Error('Missing argument.');
|
||||
}
|
||||
|
||||
if (Configuration[this._arguments.name] == null) {
|
||||
if (configuration[this._arguments.name] == null) {
|
||||
throw new Error('Unsupported option. ' + this._arguments.name);
|
||||
}
|
||||
|
||||
switch (this._arguments.operator) {
|
||||
case SetOptionOperator.Set:
|
||||
Configuration[this._arguments.name] = true;
|
||||
configuration[this._arguments.name] = true;
|
||||
break;
|
||||
case SetOptionOperator.Reset:
|
||||
Configuration[this._arguments.name] = false;
|
||||
configuration[this._arguments.name] = false;
|
||||
break;
|
||||
case SetOptionOperator.Equal:
|
||||
Configuration[this._arguments.name] = this._arguments.value!;
|
||||
configuration[this._arguments.name] = this._arguments.value!;
|
||||
break;
|
||||
case SetOptionOperator.Invert:
|
||||
Configuration[this._arguments.name] = !Configuration[this._arguments.name];
|
||||
configuration[this._arguments.name] = !configuration[this._arguments.name];
|
||||
break;
|
||||
case SetOptionOperator.Append:
|
||||
Configuration[this._arguments.name] += this._arguments.value!;
|
||||
configuration[this._arguments.name] += this._arguments.value!;
|
||||
break;
|
||||
case SetOptionOperator.Subtract:
|
||||
if (typeof this._arguments.value! === 'number') {
|
||||
Configuration[this._arguments.name] -= this._arguments.value! as number;
|
||||
configuration[this._arguments.name] -= this._arguments.value! as number;
|
||||
} else {
|
||||
let initialValue = Configuration[this._arguments.name];
|
||||
Configuration[this._arguments.name] = initialValue
|
||||
let initialValue = configuration[this._arguments.name];
|
||||
configuration[this._arguments.name] = initialValue
|
||||
.split(this._arguments.value! as string)
|
||||
.join('');
|
||||
}
|
||||
break;
|
||||
case SetOptionOperator.Info:
|
||||
let value = Configuration[this._arguments.name];
|
||||
let value = configuration[this._arguments.name];
|
||||
if (value === undefined) {
|
||||
await util.showError(`E518 Unknown option: ${this._arguments.name}`);
|
||||
} else {
|
||||
|
@ -5,7 +5,7 @@ import * as node from '../node';
|
||||
import * as token from '../token';
|
||||
import { VimState } from '../../state/vimState';
|
||||
import { TextEditor } from '../../textEditor';
|
||||
import { Configuration } from '../../configuration/configuration';
|
||||
import { configuration } from '../../configuration/configuration';
|
||||
|
||||
export interface ISubstituteCommandArguments extends node.ICommandArgs {
|
||||
pattern: string;
|
||||
@ -63,7 +63,7 @@ export class SubstituteCommand extends node.CommandBase {
|
||||
getRegex(args: ISubstituteCommandArguments, vimState: VimState) {
|
||||
let jsRegexFlags = '';
|
||||
|
||||
if (Configuration.substituteGlobalFlag === true) {
|
||||
if (configuration.substituteGlobalFlag === true) {
|
||||
// the gdefault flag is on, then /g if on by default and /g negates that
|
||||
if (!(args.flags & SubstituteFlags.ReplaceAll)) {
|
||||
jsRegexFlags += 'g';
|
||||
|
@ -2,7 +2,7 @@ import * as vscode from 'vscode';
|
||||
|
||||
import { TextEditor } from './../../textEditor';
|
||||
import { Position, PositionDiff } from './../motion/position';
|
||||
import { Configuration } from '../../configuration/configuration';
|
||||
import { configuration } from '../../configuration/configuration';
|
||||
|
||||
function escapeRegExpCharacters(value: string): string {
|
||||
return value.replace(/[\-\\\{\}\*\+\?\|\^\$\.\,\[\]\(\)\#\s]/g, '\\$&');
|
||||
@ -181,7 +181,7 @@ export class PairMatcher {
|
||||
*/
|
||||
static immediateMatchingBracket(currentPosition: Position): vscode.Range | undefined {
|
||||
// Don't delete bracket unless autoClosingBrackets is set
|
||||
if (!Configuration.getConfiguration().get('editor.autoClosingBrackets')) {
|
||||
if (!configuration.getConfiguration().get('editor.autoClosingBrackets')) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@ import * as _ from 'lodash';
|
||||
import * as vscode from 'vscode';
|
||||
|
||||
import { VimState } from '../../state/vimState';
|
||||
import { Configuration } from './../../configuration/configuration';
|
||||
import { configuration } from './../../configuration/configuration';
|
||||
import { VisualBlockMode } from './../../mode/modes';
|
||||
import { TextEditor } from './../../textEditor';
|
||||
|
||||
@ -95,7 +95,7 @@ export class PositionDiff {
|
||||
}
|
||||
|
||||
export class Position extends vscode.Position {
|
||||
private static NonWordCharacters = Configuration.iskeyword!;
|
||||
private static NonWordCharacters = configuration.iskeyword!;
|
||||
private static NonBigWordCharacters = '';
|
||||
private static NonFileCharacters = '"\'`;<>{}[]()';
|
||||
|
||||
@ -655,7 +655,7 @@ export class Position extends vscode.Position {
|
||||
* is disabled.
|
||||
*/
|
||||
public getLineBeginRespectingIndent(): Position {
|
||||
if (!Configuration.autoindent) {
|
||||
if (!configuration.autoindent) {
|
||||
return this.getLineBegin();
|
||||
}
|
||||
return this.getFirstLineNonBlankChar();
|
||||
|
@ -67,7 +67,7 @@ export interface IKeyRemapping {
|
||||
* 5. VSCodeVim flavored Vim option default values
|
||||
*
|
||||
*/
|
||||
class ConfigurationClass {
|
||||
export class Configuration {
|
||||
private readonly leaderDefault = '\\';
|
||||
private readonly cursorTypeMap = {
|
||||
line: vscode.TextEditorCursorStyle.Line,
|
||||
@ -484,4 +484,4 @@ function overlapSetting(args: {
|
||||
};
|
||||
}
|
||||
|
||||
export let Configuration = new ConfigurationClass();
|
||||
export let configuration = new Configuration();
|
||||
|
@ -1,6 +1,6 @@
|
||||
import * as vscode from 'vscode';
|
||||
|
||||
import { Configuration } from '../configuration/configuration';
|
||||
import { configuration } from '../configuration/configuration';
|
||||
|
||||
export class Decoration {
|
||||
static readonly Default = vscode.window.createTextEditorDecorationType({
|
||||
@ -18,10 +18,10 @@ export class Decoration {
|
||||
});
|
||||
|
||||
static readonly SearchHighlight = vscode.window.createTextEditorDecorationType({
|
||||
backgroundColor: Configuration.searchHighlightColor,
|
||||
backgroundColor: configuration.searchHighlightColor,
|
||||
});
|
||||
|
||||
static readonly EasyMotion = vscode.window.createTextEditorDecorationType({
|
||||
backgroundColor: Configuration.searchHighlightColor,
|
||||
backgroundColor: configuration.searchHighlightColor,
|
||||
});
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ import * as _ from 'lodash';
|
||||
import * as vscode from 'vscode';
|
||||
|
||||
import { CommandLine } from '../cmd_line/commandLine';
|
||||
import { Configuration, IKeyRemapping } from '../configuration/configuration';
|
||||
import { configuration, IKeyRemapping } from '../configuration/configuration';
|
||||
import { ModeName } from '../mode/mode';
|
||||
import { ModeHandler } from '../mode/modeHandler';
|
||||
import { VimState } from './../state/vimState';
|
||||
@ -57,7 +57,7 @@ class Remapper implements IRemapper {
|
||||
constructor(configKey: string, remappedModes: ModeName[], recursive: boolean) {
|
||||
this._recursive = recursive;
|
||||
this._remappedModes = remappedModes;
|
||||
this._remappings = Configuration[configKey] as IKeyRemapping[];
|
||||
this._remappings = configuration[configKey] as IKeyRemapping[];
|
||||
}
|
||||
|
||||
public async sendKey(
|
||||
|
@ -2,7 +2,7 @@ import * as vscode from 'vscode';
|
||||
import * as modes from './modes';
|
||||
|
||||
import { CommandLine } from '../cmd_line/commandLine';
|
||||
import { Configuration } from '../configuration/configuration';
|
||||
import { configuration } from '../configuration/configuration';
|
||||
import { Decoration } from '../configuration/decoration';
|
||||
import { Remappers } from '../configuration/remapper';
|
||||
import { Globals } from '../globals';
|
||||
@ -58,7 +58,7 @@ export class ModeHandler implements vscode.Disposable {
|
||||
new modes.DisabledMode(),
|
||||
];
|
||||
|
||||
this.vimState = new VimState(vscode.window.activeTextEditor!, Configuration.startInInsertMode);
|
||||
this.vimState = new VimState(vscode.window.activeTextEditor!, configuration.startInInsertMode);
|
||||
this.setCurrentMode(this.vimState.currentMode);
|
||||
|
||||
// Sometimes, Visual Studio Code will start the cursor in a position which
|
||||
@ -75,7 +75,7 @@ export class ModeHandler implements vscode.Disposable {
|
||||
|
||||
// Handle scenarios where mouse used to change current position.
|
||||
const disposable = vscode.window.onDidChangeTextEditorSelection(e => {
|
||||
if (Configuration.disableExt) {
|
||||
if (configuration.disableExt) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -239,7 +239,7 @@ export class ModeHandler implements vscode.Disposable {
|
||||
}
|
||||
|
||||
if (
|
||||
Configuration.mouseSelectionGoesIntoVisualMode &&
|
||||
configuration.mouseSelectionGoesIntoVisualMode &&
|
||||
!this.currentMode.isVisualMode &&
|
||||
this.currentMode.name !== ModeName.Insert
|
||||
) {
|
||||
@ -268,7 +268,7 @@ export class ModeHandler implements vscode.Disposable {
|
||||
const now = Number(new Date());
|
||||
|
||||
// Rewrite commands
|
||||
if (Configuration.overrideCopy) {
|
||||
if (configuration.overrideCopy) {
|
||||
// The conditions when you trigger a "copy" rather than a ctrl-c are
|
||||
// too sophisticated to be covered by the "when" condition in package.json
|
||||
if (key === '<D-c>') {
|
||||
@ -277,7 +277,7 @@ export class ModeHandler implements vscode.Disposable {
|
||||
|
||||
if (key === '<C-c>' && process.platform !== 'darwin') {
|
||||
if (
|
||||
!Configuration.useCtrlKeys ||
|
||||
!configuration.useCtrlKeys ||
|
||||
this.vimState.currentMode === ModeName.Visual ||
|
||||
this.vimState.currentMode === ModeName.VisualBlock ||
|
||||
this.vimState.currentMode === ModeName.VisualLine
|
||||
@ -289,7 +289,7 @@ export class ModeHandler implements vscode.Disposable {
|
||||
|
||||
// <C-d> triggers "add selection to next find match" by default,
|
||||
// unless users explicity make <C-d>: true
|
||||
if (key === '<C-d>' && !(Configuration.handleKeys['<C-d>'] === true)) {
|
||||
if (key === '<C-d>' && !(configuration.handleKeys['<C-d>'] === true)) {
|
||||
key = '<D-d>';
|
||||
}
|
||||
|
||||
@ -301,7 +301,7 @@ export class ModeHandler implements vscode.Disposable {
|
||||
try {
|
||||
// Take the count prefix out to perform the correct remapping.
|
||||
const keys = this.vimState.recordedState.getCurrentCommandWithoutCountPrefix();
|
||||
const withinTimeout = now - this.vimState.lastKeyPressedTimestamp < Configuration.timeout;
|
||||
const withinTimeout = now - this.vimState.lastKeyPressedTimestamp < configuration.timeout;
|
||||
|
||||
let handled = false;
|
||||
|
||||
@ -1261,12 +1261,12 @@ export class ModeHandler implements vscode.Disposable {
|
||||
let cursorStyle = Mode.translateCursor(this.currentMode.cursorType);
|
||||
if (
|
||||
this.currentMode.cursorType === VSCodeVimCursorType.Native &&
|
||||
Configuration.userCursor !== undefined
|
||||
configuration.userCursor !== undefined
|
||||
) {
|
||||
cursorStyle = Configuration.userCursor;
|
||||
cursorStyle = configuration.userCursor;
|
||||
}
|
||||
|
||||
cursorStyle = Configuration.modeToCursorStyleMap[this.currentMode.friendlyName.toLowerCase()] || cursorStyle;
|
||||
cursorStyle = configuration.modeToCursorStyleMap[this.currentMode.friendlyName.toLowerCase()] || cursorStyle;
|
||||
|
||||
let options = this.vimState.editor.options;
|
||||
options.cursorStyle = cursorStyle;
|
||||
@ -1310,8 +1310,8 @@ export class ModeHandler implements vscode.Disposable {
|
||||
// Draw search highlight
|
||||
let searchRanges: vscode.Range[] = [];
|
||||
if (
|
||||
(Configuration.incsearch && this.currentMode.name === ModeName.SearchInProgressMode) ||
|
||||
(Configuration.hlsearch && vimState.globalState.hl && vimState.globalState.searchState)
|
||||
(configuration.incsearch && this.currentMode.name === ModeName.SearchInProgressMode) ||
|
||||
(configuration.hlsearch && vimState.globalState.hl && vimState.globalState.searchState)
|
||||
) {
|
||||
const searchState = vimState.globalState.searchState!;
|
||||
|
||||
@ -1356,8 +1356,8 @@ export class ModeHandler implements vscode.Disposable {
|
||||
|
||||
private _renderStatusBar(): void {
|
||||
// change status bar color based on mode
|
||||
if (Configuration.statusBarColorControl) {
|
||||
const colorToSet = Configuration.statusBarColors[this.currentMode.friendlyName.toLowerCase()];
|
||||
if (configuration.statusBarColorControl) {
|
||||
const colorToSet = configuration.statusBarColors[this.currentMode.friendlyName.toLowerCase()];
|
||||
if (colorToSet !== undefined) {
|
||||
StatusBar.SetColor(colorToSet);
|
||||
}
|
||||
@ -1365,14 +1365,14 @@ export class ModeHandler implements vscode.Disposable {
|
||||
|
||||
let text = [];
|
||||
|
||||
if (Configuration.showmodename) {
|
||||
if (configuration.showmodename) {
|
||||
text.push(this.currentMode.getStatusBarText(this.vimState));
|
||||
if (this.vimState.isMultiCursor) {
|
||||
text.push(' MULTI CURSOR ');
|
||||
}
|
||||
}
|
||||
|
||||
if (Configuration.showcmd) {
|
||||
if (configuration.showcmd) {
|
||||
text.push(this.currentMode.getStatusBarCommandText(this.vimState));
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,7 @@ import { spawn } from 'child_process';
|
||||
import { attach } from 'promised-neovim-client';
|
||||
import * as vscode from 'vscode';
|
||||
|
||||
import { Configuration } from '../configuration/configuration';
|
||||
import { configuration } from '../configuration/configuration';
|
||||
import { ModeName } from '../mode/mode';
|
||||
import { Register, RegisterMode } from '../register/register';
|
||||
import { TextEditor } from '../textEditor';
|
||||
@ -11,13 +11,13 @@ import { VimState } from './../state/vimState';
|
||||
|
||||
export class Neovim {
|
||||
static async initNvim(vimState: VimState) {
|
||||
const proc = spawn(Configuration.neovimPath, ['-u', 'NONE', '-N', '--embed'], {
|
||||
const proc = spawn(configuration.neovimPath, ['-u', 'NONE', '-N', '--embed'], {
|
||||
cwd: __dirname,
|
||||
});
|
||||
proc.on('error', function(err) {
|
||||
console.log(err);
|
||||
vscode.window.showErrorMessage('Unable to setup neovim instance! Check your path.');
|
||||
Configuration.enableNeovim = false;
|
||||
configuration.enableNeovim = false;
|
||||
});
|
||||
vimState.nvim = await attach(proc.stdin, proc.stdout);
|
||||
}
|
||||
@ -26,11 +26,11 @@ export class Neovim {
|
||||
static async syncVSToVim(vimState: VimState) {
|
||||
const nvim = vimState.nvim;
|
||||
const buf = await nvim.getCurrentBuf();
|
||||
if (Configuration.expandtab) {
|
||||
if (configuration.expandtab) {
|
||||
await vscode.commands.executeCommand('editor.action.indentationToTabs');
|
||||
}
|
||||
|
||||
await nvim.setOption('gdefault', Configuration.substituteGlobalFlag === true);
|
||||
await nvim.setOption('gdefault', configuration.substituteGlobalFlag === true);
|
||||
await buf.setLines(0, -1, true, TextEditor.getText().split('\n'));
|
||||
const [rangeStart, rangeEnd] = [
|
||||
Position.EarlierOf(vimState.cursorPosition, vimState.cursorStartPosition),
|
||||
@ -91,7 +91,7 @@ export class Neovim {
|
||||
new Position(row - 1, character)
|
||||
);
|
||||
|
||||
if (Configuration.expandtab) {
|
||||
if (configuration.expandtab) {
|
||||
await vscode.commands.executeCommand('editor.action.indentationToSpaces');
|
||||
}
|
||||
// We're only syncing back the default register for now, due to the way we could
|
||||
|
@ -1,6 +1,6 @@
|
||||
import * as _ from 'lodash';
|
||||
|
||||
import { Configuration } from '../configuration/configuration';
|
||||
import { configuration } from '../configuration/configuration';
|
||||
import { ModeName } from '../mode/mode';
|
||||
import { BaseAction } from './../actions/base';
|
||||
import { BaseCommand } from './../actions/commands/actions';
|
||||
@ -32,7 +32,7 @@ import { Transformation } from './../transformations/transformations';
|
||||
*/
|
||||
export class RecordedState {
|
||||
constructor() {
|
||||
this.registerName = Configuration.useSystemClipboard ? '*' : '"';
|
||||
this.registerName = configuration.useSystemClipboard ? '*' : '"';
|
||||
}
|
||||
|
||||
/**
|
||||
@ -54,7 +54,7 @@ export class RecordedState {
|
||||
let result = '';
|
||||
|
||||
for (const key of this.commandList) {
|
||||
if (key === Configuration.leader) {
|
||||
if (key === configuration.leader) {
|
||||
result += '<leader>';
|
||||
} else {
|
||||
result += key;
|
||||
|
@ -1,6 +1,6 @@
|
||||
import * as vscode from 'vscode';
|
||||
|
||||
import { Configuration } from '../../src/configuration/configuration';
|
||||
import { configuration } from '../../src/configuration/configuration';
|
||||
import { Position } from './../common/motion/position';
|
||||
import { ModeName } from './../mode/mode';
|
||||
import { TextEditor } from './../textEditor';
|
||||
@ -74,9 +74,9 @@ export class SearchState {
|
||||
* If ignorecase is true, the search should be case insensitive.
|
||||
* If both ignorecase and smartcase are true, the search is case sensitive only when the search string contains UpperCase character.
|
||||
*/
|
||||
let ignorecase = Configuration.ignorecase;
|
||||
let ignorecase = configuration.ignorecase;
|
||||
|
||||
if (ignorecase && Configuration.smartcase && /[A-Z]/.test(search)) {
|
||||
if (ignorecase && configuration.smartcase && /[A-Z]/.test(search)) {
|
||||
ignorecase = false;
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
import * as vscode from 'vscode';
|
||||
|
||||
import { Position, PositionDiff } from './common/motion/position';
|
||||
import { Configuration } from './configuration/configuration';
|
||||
import { configuration } from './configuration/configuration';
|
||||
import { VimState } from './state/vimState';
|
||||
import { ReplaceTextTransformation } from './transformations/transformations';
|
||||
|
||||
@ -195,7 +195,7 @@ export class TextEditor {
|
||||
}
|
||||
|
||||
static getIndentationLevel(line: string): number {
|
||||
let tabSize = Configuration.tabstop;
|
||||
let tabSize = configuration.tabstop;
|
||||
|
||||
let firstNonWhiteSpace = 0;
|
||||
let checkLine = line.match(/^\s*/);
|
||||
@ -226,8 +226,8 @@ export class TextEditor {
|
||||
}
|
||||
|
||||
static setIndentationLevel(line: string, screenCharacters: number): string {
|
||||
let tabSize = Configuration.tabstop;
|
||||
let insertTabAsSpaces = Configuration.expandtab;
|
||||
let tabSize = configuration.tabstop;
|
||||
let insertTabAsSpaces = configuration.expandtab;
|
||||
|
||||
if (screenCharacters < 0) {
|
||||
screenCharacters = 0;
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { getAndUpdateModeHandler } from '../../extension';
|
||||
import { CommandLine } from '../../src/cmd_line/commandLine';
|
||||
import { Configuration } from '../../src/configuration/configuration';
|
||||
import { configuration } from '../../src/configuration/configuration';
|
||||
import { ModeHandler } from '../../src/mode/modeHandler';
|
||||
import { assertEqualLines, cleanUpWorkspace, setupWorkspace } from './../testUtils';
|
||||
|
||||
@ -108,12 +108,12 @@ suite('Basic substitute', () => {
|
||||
let originalGlobalFlag = false;
|
||||
|
||||
setup(async () => {
|
||||
originalGlobalFlag = Configuration.substituteGlobalFlag;
|
||||
Configuration.substituteGlobalFlag = true;
|
||||
originalGlobalFlag = configuration.substituteGlobalFlag;
|
||||
configuration.substituteGlobalFlag = true;
|
||||
});
|
||||
|
||||
teardown(async () => {
|
||||
Configuration.substituteGlobalFlag = originalGlobalFlag;
|
||||
configuration.substituteGlobalFlag = originalGlobalFlag;
|
||||
});
|
||||
|
||||
test('Replace all matches in the line', async () => {
|
||||
|
@ -1,7 +1,7 @@
|
||||
import * as assert from 'assert';
|
||||
|
||||
import { getAndUpdateModeHandler } from '../../extension';
|
||||
import { Configuration } from '../../src/configuration/configuration';
|
||||
import { configuration } from '../../src/configuration/configuration';
|
||||
import { ModeName } from '../../src/mode/mode';
|
||||
import { ModeHandler } from '../../src/mode/modeHandler';
|
||||
import { TextEditor } from '../../src/textEditor';
|
||||
@ -688,12 +688,12 @@ suite('Mode Visual', () => {
|
||||
let originalVisualstarValue = false;
|
||||
|
||||
setup(() => {
|
||||
originalVisualstarValue = Configuration.visualstar;
|
||||
Configuration.visualstar = true;
|
||||
originalVisualstarValue = configuration.visualstar;
|
||||
configuration.visualstar = true;
|
||||
});
|
||||
|
||||
teardown(() => {
|
||||
Configuration.visualstar = originalVisualstarValue;
|
||||
configuration.visualstar = originalVisualstarValue;
|
||||
});
|
||||
|
||||
newTest({
|
||||
|
@ -3,7 +3,7 @@ import {
|
||||
buildTriggerKeys,
|
||||
EasymotionTrigger,
|
||||
} from '../../src/actions/plugins/easymotion/easymotion.cmd';
|
||||
import { Configuration } from '../../src/configuration/configuration';
|
||||
import { configuration } from '../../src/configuration/configuration';
|
||||
import { ModeHandler } from '../../src/mode/modeHandler';
|
||||
import { getTestingFunctions } from '../testSimplifier';
|
||||
import { cleanUpWorkspace, setupWorkspace } from './../testUtils';
|
||||
@ -19,11 +19,11 @@ suite('easymotion plugin', () => {
|
||||
setup(async () => {
|
||||
await setupWorkspace();
|
||||
modeHandler = await getAndUpdateModeHandler();
|
||||
Configuration.easymotion = true;
|
||||
configuration.easymotion = true;
|
||||
});
|
||||
|
||||
teardown(async () => {
|
||||
Configuration.easymotion = false;
|
||||
configuration.easymotion = false;
|
||||
await cleanUpWorkspace();
|
||||
});
|
||||
|
||||
|
@ -4,7 +4,7 @@ import * as os from 'os';
|
||||
import { join } from 'path';
|
||||
import * as vscode from 'vscode';
|
||||
|
||||
import { Configuration } from '../src/configuration/configuration';
|
||||
import { configuration } from '../src/configuration/configuration';
|
||||
import { TextEditor } from '../src/textEditor';
|
||||
|
||||
function rndName() {
|
||||
@ -118,9 +118,9 @@ export async function cleanUpWorkspace(): Promise<any> {
|
||||
}
|
||||
|
||||
export function setTextEditorOptions(tabSize: number, insertSpaces: boolean): void {
|
||||
Configuration.enableNeovim = false;
|
||||
Configuration.tabstop = tabSize;
|
||||
Configuration.expandtab = insertSpaces;
|
||||
configuration.enableNeovim = false;
|
||||
configuration.tabstop = tabSize;
|
||||
configuration.expandtab = insertSpaces;
|
||||
let options = vscode.window.activeTextEditor!.options;
|
||||
options.tabSize = tabSize;
|
||||
options.insertSpaces = insertSpaces;
|
||||
|
Loading…
Reference in New Issue
Block a user