本文整理汇总了TypeScript中promised-neovim-client.Nvim类的典型用法代码示例。如果您正苦于以下问题:TypeScript Nvim类的具体用法?TypeScript Nvim怎么用?TypeScript Nvim使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Nvim类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: subscribe
subscribe(client: Nvim) {
client.on('notification', this.call.bind(this));
for (const name in this.definitions) {
client.subscribe(name);
}
this.client = client;
}
示例2: run
async run(vimState: VimState, command: string) {
await this.syncVSToVim(vimState);
command = ':' + command + '\n';
command = command.replace('<', '<lt>');
await this.nvim.input(command);
if ((await this.nvim.getMode()).blocking) {
await this.nvim.input('<esc>');
}
await this.syncVimToVs(vimState);
return;
}
示例3: unsubscribe
unsubscribe() {
if (this.client) {
for (const name in this.definitions) {
this.client.unsubscribe(name);
}
}
}
示例4: input
async input(vimState: VimState, keys: string) {
await this.syncVSToVim(vimState);
await this.nvim.input(keys);
await this.syncVimToVs(vimState);
return;
}
示例5: syncVimToVs
// Data flows from Vim to VS
private async syncVimToVs(vimState: VimState) {
const buf = await this.nvim.getCurrentBuf();
const lines = await buf.getLines(0, -1, false);
// one Windows, lines that went to nvim and back have a '\r' at the end,
// which causes the issues exhibited in #1914
const fixedLines =
process.platform === 'win32' ? lines.map((line, index) => line.replace(/\r$/, '')) : lines;
await TextEditor.replace(
new vscode.Range(
0,
0,
TextEditor.getLineCount() - 1,
TextEditor.getLineMaxColumn(TextEditor.getLineCount() - 1)
),
fixedLines.join('\n')
);
Logger.debug(
`Neovim: ${lines.length} lines in nvim but ${TextEditor.getLineCount()} in editor.`
);
let [row, character] = ((await this.nvim.callFunction('getpos', ['.'])) as Array<number>).slice(
1,
3
);
vimState.editor.selection = new vscode.Selection(
new Position(row - 1, character),
new Position(row - 1, character)
);
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
// be storing macros in registers.
const vimRegToVsReg = {
v: RegisterMode.CharacterWise,
V: RegisterMode.LineWise,
'\x16': RegisterMode.BlockWise,
};
vimState.currentRegisterMode =
vimRegToVsReg[(await this.nvim.callFunction('getregtype', ['"'])) as string];
Register.put((await this.nvim.callFunction('getreg', ['"'])) as string, vimState);
}
示例6:
client.eval('mode()').then((value: string) => {
if (value.length === 0) {
return;
}
const command = value[0] === 'n' ? 'ggVG' : '<Esc>ggVG';
client.input(command);
});
示例7: dispose
dispose() {
if (this.nvim) {
this.nvim.quit();
}
if (this.process) {
this.process.kill();
}
}