#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
 


Front page   Edit Diff History Attach Copy Rename Reload   New Page list Search Recent changes   Help   RSS of recent changes