Skip to content

About

Yet Another (and sometimes a bit opinionated) LSP-powered SKK implementation for Neovim written in pure Lua

Topics

Resources

Stars

25 stars

Watchers

1 watching

Forks

Latest commit

 

History

68 Commits

Folders and files

Repository files navigation

skkelua.nvim

Yet Another (and sometimes a bit opinionated) LSP-powered SKK implementation for Neovim written in pure Lua

demo

Lua で実装した Neovim 用の SKK 日本語入力プラグインです。

Requirements

Installation

変換候補の取得のため、SKK 用の辞書ファイルが必要になります。 skk-dev/dict を $XDG_DATA_HOME/nvim/skkelua/dict へ配置することを薦めます。 またプラグインマネージャーは Neovim built-in の vim.pack を推奨します。

git clone https://github.com/skk-dev/dict $XDG_DATA_HOME/nvim/skkelua/dict
vim.pack.add({ 'https://github.com/kjuq/skkelua.nvim' })
vim.keymap.set({ 'i', 'c', 't' }, '<C-j>', '<Plug>(skkelua-enable)')
require("skkelua").config({
	globalDictionaries = {
		vim.fs.joinpath(vim.fn.stdpath('data'), 'skkelua', 'dict', 'SKK-JISYO.L'),
	},
	completionRankFile = vim.fs.joinpath(vim.fn.stdpath('state'), 'skkelua', 'rank'),
	completion = {
		enabled = true,
		insertOnSelect = true,
		deferOkuri = true, -- TODO: delete `deferOkuri`, make always defer Okuri when completion is enabled
	},
	pureSpace = true,
})
-- lazy.nvim
{
	"kjuq/skkelua.nvim",
	config = function()
		require("skkelua").config({
			globalDictionaries = {
				vim.fs.joinpath(vim.fn.stdpath('data'), 'skkelua', 'dict', 'SKK-JISYO.L'),
				vim.fs.joinpath(vim.fn.stdpath('data'), 'skkelua', 'dict', 'SKK-JISYO.jinmei'),
			},
		})
		vim.keymap.set({ "i", "c", "t" }, "<C-j>", "<Plug>(skkelua-toggle)")
	end,
}

Usage

ユーザー辞書はデフォルトで $XDG_DATA_HOME/skkelua/jisyo に保存されます。

日本語入力有効にすると、変換候補が Neovim 組み込みの補完メニューに表示されます。

現在の状態は Lua API で参照できます。

require("skkelua").is_enabled()         -- 有効かどうか
require("skkelua").mode()               -- "hira" / "kata" / "hankata" / "zenkaku" / "abbrev" / ""
require("skkelua").phase()              -- "input" / "input:okurinasi" / "input:okuriari" / "henkan" / ...
require("skkelua").is_persistent_mode() -- persistent mode が有効かどうか

詳細は doc/skkelua.txt を参照してください。

Development

# テスト実行
nvim --clean --headless -l tests/run.lua # or
mise run test

# 特定の spec のみ
nvim --clean --headless -l tests/run.lua henkan

# 普段の設定と切り離して手元で試す
nvim -u tests/minimal_init.lua

License

zlib license

Credits

About

Yet Another (and sometimes a bit opinionated) LSP-powered SKK implementation for Neovim written in pure Lua

Topics

Resources

Stars

25 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages