diff options
| -rw-r--r-- | after/ftplugin/c.lua | 53 | ||||
| -rw-r--r-- | after/ftplugin/cpp.lua | 53 | ||||
| -rw-r--r-- | lazy-lock.json | 3 | ||||
| -rw-r--r-- | lua/talha/plugins/neomake.lua | 6 |
4 files changed, 114 insertions, 1 deletions
diff --git a/after/ftplugin/c.lua b/after/ftplugin/c.lua index f3bcf24..5585ff7 100644 --- a/after/ftplugin/c.lua +++ b/after/ftplugin/c.lua @@ -1 +1,54 @@ vim.opt.cinoptions = 'l1(0' + +local cmake_errorformat = table.concat({ + -- CMake internal error patterns + "CMake Error at %f:%l (%m):", + "CMake Error at %f:%l:%m", + "CMake Error in %f:%m", + "CMake Warning at %f:%l (%m):", + + -- GCC / Clang (file:line:col: type: message) + "%f:%l:%c: %trror: %m", + "%f:%l:%c: %twarning: %m", + "%f:%l:%c: %tnote: %m", + "%f:%l:%c: %m", + "%f:%l: %trror: %m", + "%f:%l: %twarning: %m", + "%f:%l: %m", + + -- MSVC (file(line): error/warning: message) + "%f(%l): %trror %m", + "%f(%l): %twarning %m", + "%f(%l,%c): %trror %m", + "%f(%l,%c): %twarning %m", + + -- GNU Make directory tracking (resolves relative file paths correctly in quickfix) + "%D%*\\a[%*\\d]: Entering directory `%f'", + "%X%*\\a[%*\\d]: Leaving directory `%f'", + "%D%*\\a: Entering directory `%f'", + "%X%*\\a: Leaving directory `%f'", + + -- Ignore unmatched compiler continuation/garbage lines + "%-G%f:%l: %m", + "%-G%s" +}, ',') + +local build_options = { + cmake_build = { + exe = "cmake", + args = { "--build", "build" }, + errorformat = cmake_errorformat, + }, + bash_build = { + exe = "./build.sh", + args = {}, + errorformat = cmake_errorformat, + } +} + +vim.keymap.set("n", "<A-b><A-m>", function() + vim.fn["neomake#Make"](0, { build_options.cmake_build }) +end) +vim.keymap.set("n", "<A-b><A-s>", function() + vim.fn["neomake#Make"](0, { build_options.bash_build }) +end) diff --git a/after/ftplugin/cpp.lua b/after/ftplugin/cpp.lua index f3bcf24..5585ff7 100644 --- a/after/ftplugin/cpp.lua +++ b/after/ftplugin/cpp.lua @@ -1 +1,54 @@ vim.opt.cinoptions = 'l1(0' + +local cmake_errorformat = table.concat({ + -- CMake internal error patterns + "CMake Error at %f:%l (%m):", + "CMake Error at %f:%l:%m", + "CMake Error in %f:%m", + "CMake Warning at %f:%l (%m):", + + -- GCC / Clang (file:line:col: type: message) + "%f:%l:%c: %trror: %m", + "%f:%l:%c: %twarning: %m", + "%f:%l:%c: %tnote: %m", + "%f:%l:%c: %m", + "%f:%l: %trror: %m", + "%f:%l: %twarning: %m", + "%f:%l: %m", + + -- MSVC (file(line): error/warning: message) + "%f(%l): %trror %m", + "%f(%l): %twarning %m", + "%f(%l,%c): %trror %m", + "%f(%l,%c): %twarning %m", + + -- GNU Make directory tracking (resolves relative file paths correctly in quickfix) + "%D%*\\a[%*\\d]: Entering directory `%f'", + "%X%*\\a[%*\\d]: Leaving directory `%f'", + "%D%*\\a: Entering directory `%f'", + "%X%*\\a: Leaving directory `%f'", + + -- Ignore unmatched compiler continuation/garbage lines + "%-G%f:%l: %m", + "%-G%s" +}, ',') + +local build_options = { + cmake_build = { + exe = "cmake", + args = { "--build", "build" }, + errorformat = cmake_errorformat, + }, + bash_build = { + exe = "./build.sh", + args = {}, + errorformat = cmake_errorformat, + } +} + +vim.keymap.set("n", "<A-b><A-m>", function() + vim.fn["neomake#Make"](0, { build_options.cmake_build }) +end) +vim.keymap.set("n", "<A-b><A-s>", function() + vim.fn["neomake#Make"](0, { build_options.bash_build }) +end) diff --git a/lazy-lock.json b/lazy-lock.json index af271a6..7f3db2e 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -3,7 +3,8 @@ "lazy.nvim": { "branch": "main", "commit": "306a05526ada86a7b30af95c5cc81ffba93fef97" }, "mini.icons": { "branch": "main", "commit": "e56797f90192d81f1fda02e662fc3e8e3d775027" }, "moonfly": { "branch": "master", "commit": "261664f92ed51cf0c077555b2d4b2530307eac17" }, - "nvim-treesitter": { "branch": "main", "commit": "8b3a191c015dd66a92d51a112ed96af0aac13b63" }, + "neomake": { "branch": "master", "commit": "584f882b9f991245374e7e7d7d1f78bae90b7a35" }, + "nvim-treesitter": { "branch": "main", "commit": "61df84986b4b4ec469ee745a182e433d49f8c27e" }, "oil.nvim": { "branch": "master", "commit": "b73018b75affd13fa38e2fc94ef753b465f770d7" }, "plenary.nvim": { "branch": "master", "commit": "74b06c6c75e4eeb3108ec01852001636d85a932b" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "b25b749b9db64d375d782094e2b9dce53ad53a40" }, diff --git a/lua/talha/plugins/neomake.lua b/lua/talha/plugins/neomake.lua new file mode 100644 index 0000000..f3a03fb --- /dev/null +++ b/lua/talha/plugins/neomake.lua @@ -0,0 +1,6 @@ +return { + "neomake/neomake", + config = function() + vim.g.neomake_open_list = 1 + end, +} |
