diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..b3f28c3 --- /dev/null +++ b/init.lua @@ -0,0 +1,36 @@ +-- This is my personal Nvim configuration supporting Mac, Linux and Windows, with various plugins configured. +-- This configuration evolves as I learn more about Nvim and become more proficient in using Nvim. +-- Since it is very long (more than 1000 lines!), you should read it carefully and take only the settings that suit you. +-- I would not recommend cloning this repo and replace your own config. Good configurations are personal, +-- built over time with a lot of polish. +-- +-- Author: Jie-dong Hao +-- Email: jdhao@hotmail.com +-- Blog: https://jdhao.github.io/ + +local utils = require "utils" +local match_res = utils.check_version_match() + +if not match_res.match then + local msg = string.format("Nvim version mistmatch: %s expected, but got %s instead!", match_res.expected, match_res.actual) + vim.api.nvim_echo({ { msg, "ErrorMsg" } }, false, {}) + return +end + +local core_conf_files = { + "globals.vim", + "options.vim", + "autocommands.vim", + "mappings.vim", + "plugins.vim", + "themes.vim", +} + +for _, name in ipairs(core_conf_files) do + local path = string.format("%s/core/%s", vim.fn.stdpath('config'), name) + local source_cmd = "source " .. path + vim.cmd(source_cmd) +end +-- for s:fname in s:core_conf_files +-- execute printf('source %s/core/%s', stdpath('config'), s:fname) +-- endfor diff --git a/init.vim b/init.vim deleted file mode 100644 index 52a648f..0000000 --- a/init.vim +++ /dev/null @@ -1,31 +0,0 @@ -" This is my personal Nvim configuration supporting Mac, Linux and Windows, with various plugins configured. -" This configuration evolves as I learn more about Nvim and become more proficient in using Nvim. -" Since it is very long (more than 1000 lines!), you should read it carefully and take only the settings that suit you. -" I would not recommend cloning this repo and replace your own config. Good configurations are personal, -" built over time with a lot of polish. -" -" Author: Jie-dong Hao -" Email: jdhao@hotmail.com -" Blog: https://jdhao.github.io/ - -" check if we have the lastest stable version of nvim -let s:expect_ver = printf('nvim-%s', '0.7.2') -let s:actual_ver = matchstr(execute('version'), 'NVIM v\zs[^\n]*') - -if !has(s:expect_ver) - echohl Error | echomsg printf("%s required, but got nvim %s!", s:expect_ver, s:actual_ver) | echohl None - finish -endif - -let s:core_conf_files = [ - \ 'globals.vim', - \ 'options.vim', - \ 'autocommands.vim', - \ 'mappings.vim', - \ 'plugins.vim', - \ 'themes.vim' - \ ] - -for s:fname in s:core_conf_files - execute printf('source %s/core/%s', stdpath('config'), s:fname) -endfor diff --git a/lua/utils.lua b/lua/utils.lua index a6fd11a..13044da 100644 --- a/lua/utils.lua +++ b/lua/utils.lua @@ -25,4 +25,23 @@ function M.may_create_dir() end end +function M.check_version_match() + -- check if we have the lastest stable version of nvim + local expected_ver = {major = 0, minor = 7, patch = 2} + local actual_ver = vim.version() + + local ver_match = true + for key, val in pairs(expected_ver) do + if val ~= actual_ver[key] then + ver_match = false + break + end + end + + local expect_ver_str = string.format("%s.%s.%s", expected_ver.major, expected_ver.minor, expected_ver.patch) + local nvim_ver_str = string.format("%s.%s.%s", actual_ver.major, actual_ver.minor, actual_ver.patch) + + return {match=ver_match, expected=expect_ver_str, actual=nvim_ver_str} +end + return M