diff --git a/README.md b/README.md index 36304b5..6954733 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,5 @@ # dial.nvim -**NOTICE: This plugin is work-in-progress yet. User interface is subject to change without notice.** - -## FOR USERS OF THE PREVIOUS VERSION (v0.2.0) - -This plugin was released v0.3.0 on 2022/02/20 and is no longer compatible with the old interface. -If you have configured the settings for previous versions, please refer to [TROUBLESHOOTING.md](./TROUBLESHOOTING.md) and reconfigure them. - ## Abstract Extended increment/decrement plugin for [Neovim](https://github.com/neovim/neovim). Written in Lua. @@ -17,6 +10,7 @@ Extended increment/decrement plugin for [Neovim](https://github.com/neovim/neovi * Increment/decrement based on various type of rules * n-ary (`2 <= n <= 36`) integers + * decimal Fractions * date and time * constants (an ordered set of specific strings, such as a keyword or operator) * `true` ⇄ `false` @@ -73,16 +67,16 @@ end) vim.keymap.set("n", "g", function() require("dial.map").manipulate("decrement", "gnormal") end) -vim.keymap.set("v", "", function() +vim.keymap.set("x", "", function() require("dial.map").manipulate("increment", "visual") end) -vim.keymap.set("v", "", function() +vim.keymap.set("x", "", function() require("dial.map").manipulate("decrement", "visual") end) -vim.keymap.set("v", "g", function() +vim.keymap.set("x", "g", function() require("dial.map").manipulate("increment", "gvisual") end) -vim.keymap.set("v", "g", function() +vim.keymap.set("x", "g", function() require("dial.map").manipulate("decrement", "gvisual") end) ``` @@ -131,15 +125,14 @@ nmap a "=mygroup(dial-increment) Alternatively, you can set the same mapping without expression register: ```lua -vim.keymap.set("n", "a", require("dial.map").inc_normal("mygroup"), {noremap = true}) +vim.keymap.set("n", "a", require("dial.map").inc_normal("mygroup")) ``` When you don't specify any group name in the way described above, the addends in the `default` group is used instead. ### Example Configuration -```vim -lua << EOF +```lua local augend = require("dial.augend") require("dial.config").augends:register_group{ default = { @@ -147,12 +140,7 @@ require("dial.config").augends:register_group{ augend.integer.alias.hex, augend.date.alias["%Y/%m/%d"], }, - typescript = { - augend.integer.alias.decimal, - augend.integer.alias.hex, - augend.constant.new{ elements = {"let", "const"} }, - }, - visual = { + only_in_visual = { augend.integer.alias.decimal, augend.integer.alias.hex, augend.date.alias["%Y/%m/%d"], @@ -161,14 +149,21 @@ require("dial.config").augends:register_group{ }, } --- change augends in VISUAL mode -vim.keymap.set("v", "", require("dial.map").inc_visual("visual"), {noremap = true}) -vim.keymap.set("v", "", require("dial.map").dec_visual("visual"), {noremap = true}) -EOF +-- Use `only_in_visual` group only in VISUAL / +vim.keymap.set("x", "", function() + require("dial.map").manipulate("increment", "visual", "only_in_visual") +end) +vim.keymap.set("x", "", function() + require("dial.map").manipulate("decrement", "visual", "only_in_visual") +end) -" enable only for specific FileType -autocmd FileType typescript lua vim.api.nvim_buf_set_keymap(0, "n", "", require("dial.map").inc_normal("typescript"), {noremap = true}) -autocmd FileType typescript lua vim.api.nvim_buf_set_keymap(0, "n", "", require("dial.map").dec_normal("typescript"), {noremap = true}) +require("dial.config").augends:on_filetype { + typescript = { + augend.integer.alias.decimal, + augend.integer.alias.hex, + augend.constant.new{ elements = {"let", "const"} }, + }, +} ``` ## List of Augends diff --git a/README_ja.md b/README_ja.md index 1a9c67f..29174b8 100644 --- a/README_ja.md +++ b/README_ja.md @@ -1,12 +1,5 @@ # dial.nvim -**NOTICE: 本プラグインはまだ開発段階であり、事前告知なくインターフェースが変更となることがあります。** - -## 旧バージョン (v0.2.0) を使っていた人へ - -2022/02/20 に v0.3.0 がリリースされ、既存のインターフェースとの互換性がなくなりました。 -以前のバージョン向けの設定を行っていた方は、[TROUBLESHOOTING.md](./TROUBLESHOOTING_ja.md) を参考に再設定を行ってください。 - ## 概要 [Neovim](https://github.com/neovim/neovim) の数値増減機能を拡張する Lua 製プラグイン。 @@ -18,6 +11,7 @@ * 数値をはじめとする様々なものの増減 * n 進数 (`2 <= n <= 36`) の整数 + * 小数 * 日付・時刻 * キーワードや演算子など、所定文字列のトグル * `true` ⇄ `false` @@ -50,14 +44,14 @@ 本プラグインを有効にするには、いずれかのキーに以下のような割り当てを行う必要があります。 ```vim -nmap (dial-increment) -nmap (dial-decrement) -nmap g g(dial-increment) -nmap g g(dial-decrement) -vmap (dial-increment) -vmap (dial-decrement) -vmap g g(dial-increment) -vmap g g(dial-decrement) +nnoremap (dial-increment) +nnoremap (dial-decrement) +nnoremap g (dial-g-increment) +nnoremap g (dial-g-decrement) +xnoremap (dial-increment) +xnoremap (dial-decrement) +xnoremap g (dial-g-increment) +xnoremap g (dial-g-decrement) ``` または Lua 上で以下のように設定することもできます。 @@ -75,16 +69,16 @@ end) vim.keymap.set("n", "g", function() require("dial.map").manipulate("decrement", "gnormal") end) -vim.keymap.set("v", "", function() +vim.keymap.set("x", "", function() require("dial.map").manipulate("increment", "visual") end) -vim.keymap.set("v", "", function() +vim.keymap.set("x", "", function() require("dial.map").manipulate("decrement", "visual") end) -vim.keymap.set("v", "g", function() +vim.keymap.set("x", "g", function() require("dial.map").manipulate("increment", "gvisual") end) -vim.keymap.set("v", "g", function() +vim.keymap.set("x", "g", function() require("dial.map").manipulate("decrement", "gvisual") end) ``` @@ -132,15 +126,14 @@ nmap a "=mygroup(dial-increment) また、 Lua 上で以下のように記述すれば expression register を使わずにマッピングを設定できます。 ```lua -vim.keymap.set("n", "a", require("dial.map").inc_normal("mygroup"), {noremap = true}) +vim.keymap.set("n", "a", require("dial.map").inc_normal("mygroup")) ``` expression register などでグループ名を指定しなかった場合、`default` グループにある被加数がかわりに用いられます。 ### 設定例 -```vim -lua << EOF +```lua local augend = require("dial.augend") require("dial.config").augends:register_group{ default = { @@ -148,12 +141,7 @@ require("dial.config").augends:register_group{ augend.integer.alias.hex, augend.date.alias["%Y/%m/%d"], }, - typescript = { - augend.integer.alias.decimal, - augend.integer.alias.hex, - augend.constant.new{ elements = {"let", "const"} }, - }, - visual = { + only_in_visual = { augend.integer.alias.decimal, augend.integer.alias.hex, augend.date.alias["%Y/%m/%d"], @@ -162,14 +150,21 @@ require("dial.config").augends:register_group{ }, } --- VISUAL モードでの被加数を変更する -vim.keymap.set("v", "", require("dial.map").inc_visual("visual"), {noremap = true}) -vim.keymap.set("v", "", require("dial.map").dec_visual("visual"), {noremap = true}) -EOF +-- Use `only_in_visual` group only in VISUAL / +vim.keymap.set("x", "", function() + require("dial.map").manipulate("increment", "visual", "only_in_visual") +end) +vim.keymap.set("x", "", function() + require("dial.map").manipulate("decrement", "visual", "only_in_visual") +end) -" 特定のファイルタイプでのみ有効にする -autocmd FileType typescript lua vim.api.nvim_buf_set_keymap(0, "n", "", require("dial.map").inc_normal("typescript"), {noremap = true}) -autocmd FileType typescript lua vim.api.nvim_buf_set_keymap(0, "n", "", require("dial.map").dec_normal("typescript"), {noremap = true}) +require("dial.config").augends:on_filetype { + typescript = { + augend.integer.alias.decimal, + augend.integer.alias.hex, + augend.constant.new{ elements = {"let", "const"} }, + }, +} ``` ## 被加数の種類と一覧