init.lua: removed buildcmd, only needed in keybindings.lua

keybindings.lua: added grep_string to <leader>fs and spell_suggest to
<leader>ss
buildcmd.lua: searches the cwd for a build file and decides which build to use (build.zig, build.bat, build.sh)
This commit is contained in:
twig 2023-01-28 23:24:54 -08:00
parent de564b9cba
commit 4363c8d7d5
3 changed files with 26 additions and 3 deletions

View File

@ -1,5 +1,4 @@
-- Only required if you have packer configured as `opt` -- Only required if you have packer configured as `opt`
require('buildcmd')
require('statusline') require('statusline')
require('packer_init') require('packer_init')
require('keybindings') require('keybindings')

View File

@ -9,6 +9,25 @@ local function has_buffer()
return job_buffer and vim.fn.buflisted(job_buffer) == 1 return job_buffer and vim.fn.buflisted(job_buffer) == 1
end end
local function get_build_cmd()
for path, type in vim.fs.dir(vim.fn.getcwd(), nil)
do
if (path == "build.zig") then
return "zig build"
end
if (path == "build.bat" or path == "build.sh") then
if (vim.loop.os_uname().sysname == "Windows_NT") then
-- TODO(twig): if I move to llvm this should work, right now cl doesn't work because nvim spawns a command prompt that doesn't have vcvars in it (nor does it have my stuff)
return "build.bat"
else
-- TODO(twig): this is untested!
return "build.sh"
end
end
end
return ""
end
function save_all_and_build() function save_all_and_build()
if job_id then if job_id then
print("Job processing") print("Job processing")
@ -29,7 +48,8 @@ function save_all_and_build()
end end
vim.api.nvim_buf_set_option(job_buffer, 'filetype', 'build') vim.api.nvim_buf_set_option(job_buffer, 'filetype', 'build')
vim.api.nvim_buf_set_option(job_buffer, 'modified', false) vim.api.nvim_buf_set_option(job_buffer, 'modified', false)
-- TODO: if I want to get fancy I can set a build string per language. -- THis looks at files in the cwd and decides if there is something to build (build.zig for zig, build.bat/.sh for c++)
job_id = vim.fn.termopen("zig build", {on_exit = job_exit}) local build_cmd = get_build_cmd()
job_id = vim.fn.termopen(build_cmd, {on_exit = job_exit})
vim.api.nvim_buf_set_name(job_buffer, '[build]') vim.api.nvim_buf_set_name(job_buffer, '[build]')
end end

View File

@ -20,6 +20,10 @@ vim.keymap.set('n', '<leader>bb', save_all_and_build, opts)
-- Would love to have this be alt but that doesn't work... -- Would love to have this be alt but that doesn't work...
vim.keymap.set('i', '<A-t>', '// TODO(twig): ', opts) vim.keymap.set('i', '<A-t>', '// TODO(twig): ', opts)
vim.keymap.set('i', '<A-y>', '// NOTE(twig): ', opts) vim.keymap.set('i', '<A-y>', '// NOTE(twig): ', opts)
-- This is horrendous on windows, can't use nvim for almost a minute!
vim.keymap.set('n', 'K', '')
vim.keymap.set('n', '<leader>fs', '<cmd>Telescope grep_string<cr>', opts)
vim.keymap.set('n', '<leader>ss', '<cmd>Telescope spell_suggest', opts)
local on_attach = function(client, bufnr) local on_attach = function(client, bufnr)
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')