Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 4 additions & 14 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Neovim
uses: rhysd/action-setup-vim@v1
with:
neovim: true
uses: actions/checkout@v6

- name: Setup mise
uses: jdx/mise-action@v2
uses: jdx/mise-action@v4
with:
install: true
cache: true
Expand All @@ -41,15 +36,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Neovim
uses: rhysd/action-setup-vim@v1
with:
neovim: true
uses: actions/checkout@v6

- name: Setup mise
uses: jdx/mise-action@v2
uses: jdx/mise-action@v4
with:
install: true
cache: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
fetch-depth: 0

Expand Down
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,9 @@ Declarative keymap DSL for Neovim
- Compose nested declarations with `sub { ... }`, reuse [`vim.keymap.set()`](https://neovim.io/doc/user/lua/#vim.keymap.set()) options
- Easier syntax for buffer autocommands with `template()`

Full docs: [`doc/mappet.txt`](doc/mappet.txt) (`:help mappet`).
Requires Neovim `0.12+`

Full docs: [`doc/mappet.txt`](doc/mappet.txt) (`:help mappet`)

## Install

Expand Down Expand Up @@ -90,7 +92,7 @@ vim.api.nvim_create_autocmd('FileType', {
})
```

For all options, modes, and API details, see [`doc/mappet.txt`](doc/mappet.txt).
For all options, modes, and API details, see [`doc/mappet.txt`](doc/mappet.txt)

## Why?

Expand Down
2 changes: 1 addition & 1 deletion lua/mappet.lua
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,7 @@ local function apply_maps(entries, maps, bufnr)

local opts = vim.deepcopy(m.opts)
if bufnr ~= nil then
opts.buffer = bufnr
opts.buf = bufnr
end

local ok = pcall(vim.keymap.set, m.mode, m.lhs, m.rhs, opts)
Expand Down
13 changes: 7 additions & 6 deletions mise.toml
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
[tools]
neovim = "0.12"
stylua = "latest"
"cargo:vimcats" = { version = "latest", features = "cli" }
"aqua:LuaLS/lua-language-server" = "latest"

[tasks.lint]
run = [
{ task = "lint-format" },
{ task = "lint-lsp" },
]
alias = "l"
depends = "lint:*"

[tasks.lint-format]
[tasks."lint:format"]
run = "stylua --check lua/"

[tasks.lint-lsp]
[tasks."lint:lsp"]
run = '''
VIMRUNTIME=$(nvim --headless --clean -u NONE --noplugin "+lua io.write(vim.env.VIMRUNTIME)" +qa) \
lua-language-server --check . --checklevel=Warning --configpath luarc.json
'''

[tasks.format]
alias = "f"
run = "stylua lua/"

[tasks.doc]
Expand All @@ -28,6 +28,7 @@ vimcats -f -i 2 --layout mini:2 lua/mappet.lua > doc/mappet.txt
'''

[tasks.test]
alias = "t"
depends = ["dev-deps"]
run = "nvim --headless --noplugin -u ./tests/run.lua"

Expand Down
23 changes: 23 additions & 0 deletions tests/test_buffer.lua
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
local new_set = MiniTest.new_set
local eq = MiniTest.expect.equality
local expect = MiniTest.expect

local H = dofile(vim.fn.getcwd() .. '/tests/helpers.lua')
local keymap = require 'mappet'

local T = new_set()
Expand All @@ -22,4 +24,25 @@ T['buffer()']['fails on unloaded buffer'] = function()
end, 'buffer is not loaded')
end

T['buffer()']['creates buffer-local mappings'] = function()
local name = H.unique_name 'buffer-local'
local lhs = '<Plug>(mappet-buffer-local)'
local target_buf = vim.api.nvim_get_current_buf()
local other_buf = vim.api.nvim_create_buf(true, false)

keymap.buffer(name, target_buf) { 'n', silent = true } {
keymap.map(lhs, 'buffer only') '<Nop>',
}

local target_map = H.get_buffer_map(target_buf, 'n', lhs)
local other_map = H.get_buffer_map(other_buf, 'n', lhs)
local global_map = H.get_global_map('n', lhs)

eq(H.truthy(target_map), true)
eq(H.truthy(other_map), false)
eq(H.truthy(global_map), false)
eq(target_map.desc, 'buffer only')
eq(target_map.silent, 1)
end

return T
Loading