#author("2026-10-09T10:00:58+09:00","","") #author("2026-10-10T16:35:18+09:00","","") * logger [#qd769982] ** 構想 [#de552e2a] - 現在各OSSで独自のlogger log.luaをコピーして使用している - 500行くらいある - これを一つのrepositoryとして各OSSで共通して使いたい(仮名前:kibi2/logger.nvim) - 各OSSではlogger.nvimは前提としない - 各OSSではlog.lua内部でlogger.nvimがあれば委譲する - 各OSSではlog.lua内部でlogger.nvimがなければerrorレベルだけvim.notifyを呼ぶ。その他は無視する。 - 各OSSではlogger.nvimは独立して表示レベル(error, debug, ...)を指定できる様にしたい ** 実装計画 [#jad695c7] - 名前を決める。kibi2/log.nvim, kibi2/logger.nvim, kibi2/kb2log.nvim, とりあえずlogger.nvimとして話を進めます - keyevent.nvim のlog.luaを分離してlogger.nvim repositoryを作る - keyevent.nvim のlog.luaでlogger.nvim を使う様にする - keyevent.nvim のlog.luaでlogger.nvim がない場合の処理を実装する - rush.nvim でlogger.nvimを使う様にする - rush.nvim, keyevent.nvim で設定(confgi)を分離する - :ex からkibi2/logger.nvimをロードできる様にする - 他のOSSもlogger.nvimを使う様にする ** config 独立 [#w51a2936] こんな感じでどうでしょうか? -- keyevent.init function M.setup(opts) require("keyevent.config").setup(opts.log or {}) end -- keyevent.config function M.setup(opts) ... require("keyevent.log").setup(opts.log or {}) ... end -- keyevent.log local KEY = "KYE" function M.setup(opts) logger.setup(KEY, opts) end function M.debug(...) logger.debug(KEY, ...) end -- logger local config local configs = {} function M.setup(key, opts) configs[key] = vim.deepcopy(require("kibi2.logger.config").setup(opts)) end function M.debug(key, ...) config = configs[key] emit(false, levels.DEBUG, {}, ...) end