opt 디렉토리만 사용하는 Neovim 플러그인 관리자 만들기
Neovim용 플러그인 관리자를 제작했습니다.우선 자신이 사용하는 기능만 있다.
왜 하는 거예요?
처음 동기는 애용minpac인데 확장된 스크립트가 커졌어요.
opt 디렉터리를 처리할 때 주의사항
의외로 나는
packages
의 기능을 모른다.그중에opt 디렉터리에 대한 세 가지 주의점도 열거했다.
packpath 밑에 같은 이름의 플러그인이 있는 경우,packadd는runtimepath에 둘을 추가합니다
그 결과 먼저
runtimepath
에서 한 쪽이 우선되었다.아래 루아 디렉터리의 예
require("myplugin")
를 사용한다면 mypackage1
의 한 쪽init.lua
을 읽는다.local packpath = "./mypackpath"
vim.cmd("set packpath^=" .. packpath)
local create_plugin = function(package_name)
local plugin = packpath .. ("/pack/%s/opt/myplugin.nvim/lua/myplugin/"):format(package_name)
vim.fn.mkdir(plugin, "p")
io.open(plugin .. "init.lua", "w"):close()
end
create_plugin("mypackage1")
create_plugin("mypackage2")
vim.cmd("packadd myplugin.nvim")
print(vim.inspect(vim.api.nvim_get_runtime_file("lua/myplugin/init.lua", true)))
-- { "./mypackpath/pack/mypackage1/opt/myplugin.nvim/lua/myplugin/init.lua", "./mypackpath/pack/mypackage2/opt/myplugin.nvim/lua/myplugin/init.lua" }
:colorscheeme는opt 디렉터리의 배색 방안도 읽을 수 있습니다
별다른 고민은 없었지만, 예외적인 행동을 느꼈기 때문에 일단 열거했다.
도움말에도 쓰여 있습니다.:help packages
초기화할 때 이외: 패키지 / pluggin 디렉터리를 읽을 수 없습니다
runtimepath
에 추가되었기 때문에 초기화 시:packadd
에는 문제가 없습니다.:help load-plugins 즉, 다음과 같이 초기화할 때 처리된 마지막 처리가
+{command}
라고 불릴 때 읽히지 않는다.$ nvim --headless -u NORC +"luafile ./test.lua"
$ nvim --headless -u test.vim
test
test.vimluafile ./test.lua
test.lualocal packpath = "./mypackpath"
vim.cmd("set packpath^=" .. packpath)
local create_plugin = function(package_name)
local plugin = packpath .. ("/pack/%s/opt/myplugin.nvim/after/plugin/"):format(package_name)
vim.fn.mkdir(plugin, "p")
local f = io.open(plugin .. "myplugin.lua", "w")
f:write([[print("test")]])
f:close()
end
create_plugin("mypackage1")
vim.cmd("packadd myplugin.nvim")
읽지 않으면 동작에 영향을 주는 플러그인이라면 명확하게 읽을 수밖에 없다.(예:
:runtime after/plugin/myplugin.vim
테스트 시 Giit 서버 사용
플러그인 업데이트를 작성할 때 동작 테스트를 할 때 모듈이 아닌 Git 서버를 사용합니다.
플러그인 관리자는 항상 손상을 원하지 않습니다.
나는 Giit 서버를 마크로 설정해서 의미 있는 테스트를 쓸 자신이 없다.
Giit 서버는
python -m http.server --cgi
및 git-http-backend
에서테스트 내에 시작/종료.
https://git-scm.com/book/en/v2/Git-on-the-Server-Smart-HTTP에
테스트이기 때문에 환경 변수
GIT_HTTP_EXPORT_ALL
에 설치하여 모든 창고를 공개합니다.(1패)optpack.nvim 처리된Git 서버의 URL은 선택적으로 변경할 수 있으며 테스트에서 사용할 수 있습니다
http://127.0.0.1:8000/cgi-bin/git-http-backend
.현지에서 활동하는 만큼 테스트를 늘려도 전체가 1초 정도면 완성되고 체험도 나빠지지 않았다.
감상
없어Promise엄격해
Reference
이 문제에 관하여(opt 디렉토리만 사용하는 Neovim 플러그인 관리자 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/notomo/articles/neovim-plugin-manager-optpack텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)