• Stars
    star
    173
  • Rank 218,431 (Top 5 %)
  • Language
    Lua
  • Created over 1 year ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Flexible key mapping manager.

nvim-insx

Flexible key mapping manager.

2023-06-01.3.07.56.mov

Warning

  • The basic recipes supports dot-repeat
    • However, advanced recipes don't support dot-repeat.
  • This plugin is usually works as expected.
    • Does not aim to support to always work as expected because this plugin uses RegExp 😅
    • Not based on tree-sitter is intentional. I think regular expressions are great for control during editing.
  • It is more convenient when used with vim-matchup.
    • The demo image uses with vim-matchup. 👍
  • This plugin provides basic cmdline-mode pairwise features.
    • The advanced recipes aren't support cmdline-mode.
  • The preset change is not treat as breakin change
    • if you hope to fix preset behavior, please write your own mapping definitions in your vimrc. 😢

Usage

This plugin does not provide any default mappings. You should define mapping by yourself like this.

Use preset

require('insx.preset.standard').setup()

Use recipe

local insx = require('insx')

insx.add(
  "'",
  insx.with(require('insx.recipe.auto_pair')({
    open = "'",
    close = "'"
  }), {
    insx.with.in_string(false),
    insx.with.in_comment(false),
    insx.with.nomatch([[\\\%#]]),
    insx.with.nomatch([[\a\%#]])
  })
)

Create your own recipe

-- Simple pair deletion recipe.
local function your_recipe(option)
  return {
    action = function(ctx)
      if option.allow_space then
        ctx.remove([[\s*\%#\s*]])
      end
      ctx.send('<BS><Right><BS>')
    end,
    enabled = function(ctx)
      if option.allow_space then
        return ctx.match([[(\s*\%#\s*)]])
      end
      return ctx.match([[(\%#)]])
    end
  }
end

The standard preset enables some of the advanced features.

Status

The API is stable except helper related APIs.

bug report & feature request are welcome.

More Repositories

1

nvim-cmp

A completion plugin for neovim coded in Lua.
Lua
7,735
star
2

nvim-compe

Auto completion Lua plugin for nvim
Lua
1,284
star
3

cmp-nvim-lsp

nvim-cmp source for neovim builtin LSP client
Lua
1,184
star
4

vim-vsnip

Snippet plugin for vim/nvim that supports LSP/VSCode's snippet format.
Vim Script
872
star
5

cmp-nvim-lsp-signature-help

cmp-nvim-lsp-signature-help
Lua
585
star
6

cmp-path

nvim-cmp source for path
Lua
581
star
7

cmp-buffer

nvim-cmp source for buffer words
Lua
570
star
8

vscode-langservers-extracted

vscode-langservers bin collection.
Shell
560
star
9

cmp-cmdline

nvim-cmp source for vim's cmdline
Lua
514
star
10

cmp-nvim-lua

nvim-cmp source for nvim lua
Lua
308
star
11

cmp-nvim-lsp-document-symbol

nvim-cmp source for textDocument/documentSymbol via nvim-lsp.
Lua
179
star
12

cmp-emoji

nvim-cmp source for emoji
Lua
170
star
13

cmp-calc

nvim-cmp source for math calculation
Lua
142
star
14

cmp-copilot

copilot.vim source for nvim-cmp
Lua
129
star
15

vim-vsnip-integ

vim-vsnip integrations to other plugins.
Vim Script
125
star
16

nvim-pasta

The yank/paste enhancement plugin for neovim.
Lua
103
star
17

cmp-vsnip

nvim-cmp source for vim-vsnip
Lua
90
star
18

vim-searchx

The extended search motion.
Vim Script
76
star
19

vim-eft

enhanced f/t
Vim Script
75
star
20

cmp-omni

nvim-cmp source for omnifunc
Lua
43
star
21

nvim-gtd

LSP's Go to definition plugin for neovim.
Lua
36
star
22

vim-seak

search + seek = seak. The plugin that enhances the `/` and `?`.
Vim Script
35
star
23

js-co-on

co based event emitter handling.
JavaScript
33
star
24

vim-lamp

💡Language Server Protocol client for Vim.
Vim Script
32
star
25

nvim-kit

My personal Lua utilities for neovim.
Lua
27
star
26

nvim-automa

Automatic macro recorder for neovim.
Lua
21
star
27

nvim-dansa

Guess the indent from lines of around.
Lua
19
star
28

vim-vital-vs

Vim Script
18
star
29

denops-popup

https://deno.land/x/denops_popup
Vim Script
17
star
30

vim-gindent

General indentexpr plugin for vim and nvim.
Lua
17
star
31

nvim-lua-rpc-example

Lua
16
star
32

nvim-linkedit

Lua
14
star
33

nvim-automa-poc

POC of plugin that will be called `nvim-automa`
Lua
13
star
34

vim-candle

Candidates listing engine for vim/nvim built on yaegi on golang.
Vim Script
12
star
35

nvim-matcha

A fuzzy finding plugin for neovim (for my personal use)
11
star
36

cmp-core-example

Lua
11
star
37

nvim-lua-rpc-example-with-headless

Use nvim --headless for asynchronous processing
Lua
11
star
38

vim-neco-calc

neocomplcache/neocomplete/deoplete calculates plugin.
Vim Script
10
star
39

vim-versions

useful interface for version control.
Vim Script
9
star
40

vim-compete

Auto completion plugin for vim/nvim that supports fuzzy match.
Vim Script
9
star
41

state-use

Simple state manager for React
TypeScript
8
star
42

deno-json-rpc

Strongly typed json-rpc module for deno.
TypeScript
7
star
43

nvim-plugin-template

Makefile
7
star
44

srimmer

Srimmer provides simple api to use react and immer.
TypeScript
6
star
45

vim-unmatchparen

highlight unmatch parens.
Vim Script
6
star
46

vim-denite-gitto

denite with vim-gitto
Python
6
star
47

msw-snapshot

Transparently create an API cache for testing.
TypeScript
5
star
48

deno-nvim-types

The Nvim API type definition for TypeScript.
TypeScript
5
star
49

completion-snippet

The vim-vsnip snippet collection for completion.
5
star
50

vim-foolish-move

Vim Script
5
star
51

fern-mapping-collapse-or-leave.vim

Vim Script
5
star
52

hrsh7th

My profile.
4
star
53

deoplete-vim-lsc

deoplete source for vim-lsc.
Vim Script
4
star
54

fern-mapping-call-function.vim

Vim Script
4
star
55

vim-aim

This plugin provides motion that similar to /. (experimental)
Vim Script
3
star
56

vim-minx

Extended insert-mode mapping manager.
Vim Script
3
star
57

js-gulp-component-build

gulp plugin to build component.
JavaScript
3
star
58

js-modelis

Modelis javascript modeling support.
JavaScript
2
star
59

vim-lamp-extensions

Vim Script
2
star
60

node-monores

monorepo scripts.
TypeScript
2
star
61

nvim-tuil

nvim plugin utilities that can be embed your plugin.
Lua
2
star
62

frontend-testing-demo

https://hrsh7th.github.io/frontend-testing-demo/main/storybook
TypeScript
2
star
63

vim-compete-lamp

Vim Script
2
star
64

vim-gitto

vim-gitto
Vim Script
2
star
65

vsnip-snippet-plugin-demo

Vim Script
1
star
66

vim-neco-snippets

neocomplcache my snippets.
1
star
67

vim-feeling-move

Vim Script
1
star
68

deoplete-lamp

deoplete source for vim-lamp.
Vim Script
1
star
69

denite-converter-prioritize-basename

Python
1
star
70

denops-sandbox

TypeScript
1
star
71

compe-lamp

vim-lamp source for compe for my personal use.
Vim Script
1
star
72

deoplete-calc

calculates at completion.
Python
1
star
73

nvim-lapi

1
star
74

js-modelis-assurance

assucrance plugin for modelis.
JavaScript
1
star
75

refnew-react

refnew react binding.
TypeScript
1
star
76

deoplete-fname

filename completion for deoplete.nvim.
Python
1
star
77

vim-diffkit

Buffer diff management in VimL. Improve performance for getting buffer's diff.
Vim Script
1
star
78

vim-picka

Vim Script
1
star
79

asyncomplete-lamp

asyncomplete source for vim-lamp.
Vim Script
1
star
80

react-inview-hook

react hooks & intersection-observer
TypeScript
1
star
81

vim-locon

local config in vimrc.
Vim Script
1
star
82

vim-compete-omnifunc

Vim Script
1
star
83

vim-vital-deno

vim x deno (experimental)
1
star
84

diagnostics.nvim

Experimental diagnostics service for neovim.
Vim Script
1
star
85

immer-deps

Auto update dependencies, when immer's produce.
TypeScript
1
star
86

vim-effort-gf

Vim Script
1
star
87

sandbox

Lua
1
star
88

slow-lsp-demo

TypeScript
1
star
89

vim-compete-lsp

vim-lsp source for vim-compete.
Vim Script
1
star
90

xhr-snapshot

TypeScript
1
star
91

refnew

proxy based state management utility.
TypeScript
1
star
92

compe-conjure

compe-nvim source for conjure
Lua
1
star
93

babel-plugin-tree-shakable

good manner cjs files to mjs. this is very very experimental. do not use.
JavaScript
1
star