temp!
This commit is contained in:
parent
e683120b10
commit
1568c56b0a
1
after/ftplugin/c.lua
Normal file
1
after/ftplugin/c.lua
Normal file
@ -0,0 +1 @@
|
||||
require('build').create_commands()
|
@ -1 +1,3 @@
|
||||
vim.bo.commentstring = '//%s'
|
||||
|
||||
require('build').create_commands()
|
||||
|
1
init.lua
1
init.lua
@ -2,6 +2,7 @@ require('settings')
|
||||
require('mappings')
|
||||
require('netrw')
|
||||
require('autocmds')
|
||||
require('build')
|
||||
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not vim.loop.fs_stat(lazypath) then
|
||||
|
69
lua/build.lua
Normal file
69
lua/build.lua
Normal file
@ -0,0 +1,69 @@
|
||||
local build = {}
|
||||
|
||||
function build.dir(opts)
|
||||
print(vim.inspect(opts))
|
||||
local num_fargs = table.maxn(opts.fargs)
|
||||
local dir = nil
|
||||
|
||||
if num_fargs == 0 then -- Find build directories
|
||||
local dirs = build.list_dirs()
|
||||
local num_dirs = table.maxn(dirs)
|
||||
|
||||
if num_dirs == 0 then
|
||||
vim.cmd.echoerr('no build directories found')
|
||||
elseif num_dirs == 1 then
|
||||
-- One build directory found, use it
|
||||
dir = dirs[1]
|
||||
else
|
||||
-- Multiple build directories found, select one
|
||||
require("telescope.pickers.multi") {
|
||||
prompt_title = "Select from the list",
|
||||
results_title = "Options",
|
||||
sorting_strategy = "ascending",
|
||||
layout_strategy = "vertical",
|
||||
winblend = 10,
|
||||
border = true,
|
||||
previewer = false, -- Set to true if you want a preview window
|
||||
results = dir,
|
||||
}
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
if not dir then
|
||||
return
|
||||
end
|
||||
|
||||
-- TODO: Set build directory
|
||||
-- TODO: Post-process compile_commands.json with compdb
|
||||
end
|
||||
|
||||
function build.run(opts)
|
||||
print(vim.inspect(opts))
|
||||
end
|
||||
|
||||
function build.list_dirs()
|
||||
local dirs = vim.fn.globpath('.', 'build*')
|
||||
dirs = vim.fn.substitute(dirs, '\\.\\/', '', 'g')
|
||||
return vim.fn.split(dirs)
|
||||
end
|
||||
|
||||
function build.list_targets()
|
||||
return {}
|
||||
end
|
||||
|
||||
function build.create_commands()
|
||||
local buffer = vim.api.nvim_get_current_buf()
|
||||
|
||||
-- Create :BuildDir command
|
||||
vim.api.nvim_buf_create_user_command(buffer, 'BuildDir', build.dir, {
|
||||
bang = true, nargs = '?', complete = build.list_dirs,
|
||||
})
|
||||
|
||||
-- Create :Build command
|
||||
vim.api.nvim_buf_create_user_command(buffer, 'Build', build.run, {
|
||||
bang = true, nargs = '*', complete = build.list_targets,
|
||||
})
|
||||
end
|
||||
|
||||
return build
|
@ -4,6 +4,7 @@ return {
|
||||
'nvim-lua/plenary.nvim',
|
||||
'nvim-telescope/telescope-fzy-native.nvim',
|
||||
'nvim-tree/nvim-web-devicons',
|
||||
'axkirillov/easypick.nvim',
|
||||
},
|
||||
config = function()
|
||||
local telescope = require('telescope')
|
||||
|
Loading…
x
Reference in New Issue
Block a user