mirror of
https://github.com/microsoft/vscode-extension-samples.git
synced 2026-04-27 16:55:44 +08:00
53 lines
1.2 KiB
TypeScript
53 lines
1.2 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
'use strict';
|
|
|
|
import { MotionState, Motion } from './motions';
|
|
|
|
export enum Mode {
|
|
INSERT,
|
|
NORMAL,
|
|
REPLACE
|
|
}
|
|
|
|
export interface ModifierKeys {
|
|
ctrl?: boolean;
|
|
alt?: boolean;
|
|
shifit?: boolean;
|
|
}
|
|
|
|
export class DeleteRegister {
|
|
public isWholeLine: boolean;
|
|
public content: string;
|
|
|
|
constructor(isWholeLine: boolean, content: string) {
|
|
this.isWholeLine = isWholeLine;
|
|
this.content = content;
|
|
}
|
|
}
|
|
|
|
export interface IController {
|
|
motionState: MotionState;
|
|
|
|
setMode(mode: Mode): void;
|
|
setVisual(newVisual: boolean): void;
|
|
findMotion(input: string): Motion;
|
|
isMotionPrefix(input: string): boolean;
|
|
|
|
setDeleteRegister(register: DeleteRegister): void;
|
|
getDeleteRegister(): DeleteRegister;
|
|
}
|
|
|
|
export abstract class AbstractCommandDescriptor {
|
|
|
|
public abstract createCommand(args?: any): Command;
|
|
|
|
}
|
|
|
|
export interface Command {
|
|
commandId: string;
|
|
args?: any[];
|
|
}
|