Merge branch 'dev' into StyLua-workflow

This commit is contained in:
Marc 2023-04-05 13:44:40 +03:00 committed by GitHub
commit 92e206ae85
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 109 additions and 94 deletions

5
.pre-commit-config.yaml Normal file
View File

@ -0,0 +1,5 @@
repos:
- repo: https://github.com/JohnnyMorganz/StyLua
rev: v0.17.1
hooks:
- id: stylua-github

10
.stylua.toml Normal file
View File

@ -0,0 +1,10 @@
column_width = 120
line_endings = "Unix"
indent_type = "Spaces"
indent_width = 2
quote_style = "AutoPreferSingle"
call_parentheses = "NoSingleTable"
collapse_simple_statement = "Never"
[sort_requires]
enabled = false

View File

@ -1,9 +1,9 @@
local M = {} local M = {}
local defaults = { local defaults = {
position = "right", -- options: top, left, right, bottom position = 'right', -- options: top, left, right, bottom
width = 80, -- width of window when position is left or right width = 80, -- width of window when position is left or right
height = 10, -- height of window when position is top or bottom height = 10, -- height of window when position is top or bottom
} }
M.options = {} M.options = {}

View File

@ -23,10 +23,10 @@ M.shell_handler = function(command, editable)
local output_window = utils.create_window() local output_window = utils.create_window()
vim.api.nvim_win_set_buf(output_window, output_buffer) vim.api.nvim_win_set_buf(output_window, output_buffer)
vim.fn.termopen(command, { vim.fn.termopen(command, {
cwd = vim.fn.getcwd(), cwd = vim.fn.getcwd(),
}) })
end end
end end
M.command_handler = function(command) M.command_handler = function(command)
@ -45,27 +45,27 @@ M.choice = function(handlers)
return vim.tbl_values(handlers)[1] return vim.tbl_values(handlers)[1]
end end
return function(buffer) return function(buffer)
local picker = pickers.new( local picker = pickers.new(
{}, {},
themes.get_dropdown({ themes.get_dropdown {
prompt_title = "Runner", prompt_title = 'Runner',
finder = finders.new_table({ finder = finders.new_table {
results = vim.tbl_keys(handlers), results = vim.tbl_keys(handlers),
}), },
sorter = sorters.get_generic_fuzzy_sorter(), sorter = sorters.get_generic_fuzzy_sorter(),
attach_mappings = function(prompt_bufnr) attach_mappings = function(prompt_bufnr)
actions.select_default:replace(function() actions.select_default:replace(function()
actions.close(prompt_bufnr) actions.close(prompt_bufnr)
local handler_name = action_state.get_selected_entry()[1] local handler_name = action_state.get_selected_entry()[1]
handlers[handler_name](buffer) handlers[handler_name](buffer)
end) end)
return true return true
end, end,
}) }
) )
picker:find() picker:find()
end end
end end
return M return M

View File

@ -1,12 +1,12 @@
local helpers = require("runner.handlers.helpers") local helpers = require("runner.handlers.helpers")
local handlers = { local handlers = {
rust = require("runner.handlers.languages.rust"), rust = require('runner.handlers.languages.rust'),
python = require("runner.handlers.languages.python"), python = require('runner.handlers.languages.python'),
lua = helpers.command_handler("luafile %"), lua = helpers.command_handler('luafile %'),
javascript = require("runner.handlers.languages.nodejs"), javascript = require('runner.handlers.languages.nodejs'),
typescript = require("runner.handlers.languages.nodejs"), typescript = require('runner.handlers.languages.nodejs'),
vue = require("runner.handlers.languages.nodejs"), vue = require('runner.handlers.languages.nodejs'),
} }
return handlers return handlers

View File

@ -1,5 +1,5 @@
local helpers = require("runner.handlers.helpers") local helpers = require('runner.handlers.helpers')
local utils = require("runner.handlers.utils") local utils = require('runner.handlers.utils')
return function(buffer) return function(buffer)
utils.run_command(utils.script_path() .. "get-scripts.sh", function(output) utils.run_command(utils.script_path() .. "get-scripts.sh", function(output)
@ -13,9 +13,9 @@ return function(buffer)
end end
end end
local handlers = { local handlers = {
["Run current file"] = helpers.shell_handler("node " .. vim.fn.expand("%")), ['Run current file'] = helpers.shell_handler('node ' .. vim.fn.expand('%')),
} }
for _, bin in pairs(bins) do for _, bin in pairs(bins) do
handlers['Run "' .. bin .. '"'] = helpers.shell_handler("npm run " .. bin) handlers['Run "' .. bin .. '"'] = helpers.shell_handler("npm run " .. bin)

View File

@ -1,5 +1,5 @@
local helpers = require("runner.handlers.helpers") local helpers = require('runner.handlers.helpers')
local utils = require("runner.handlers.utils") local utils = require('runner.handlers.utils')
return function(buffer) return function(buffer)
utils.run_command(utils.script_path() .. "get-bins.sh", function(output) utils.run_command(utils.script_path() .. "get-bins.sh", function(output)

View File

@ -18,56 +18,56 @@ M.create_buffer = function()
end end
M.create_window = function() M.create_window = function()
if M._window and vim.api.nvim_win_is_valid(M._window) then if M._window and vim.api.nvim_win_is_valid(M._window) then
vim.api.nvim_set_current_win(M._window) vim.api.nvim_set_current_win(M._window)
return M._window return M._window
end end
if config.options.position == "right" then if config.options.position == 'right' then
vim.cmd("botright " .. config.options.width .. " vsplit") vim.cmd('botright ' .. config.options.width .. ' vsplit')
elseif config.options.position == "left" then elseif config.options.position == 'left' then
vim.cmd("topleft " .. config.options.width .. " vsplit") vim.cmd('topleft ' .. config.options.width .. ' vsplit')
elseif config.options.position == "bottom" then elseif config.options.position == 'bottom' then
vim.cmd("botright " .. config.options.height .. "split") vim.cmd('botright ' .. config.options.height .. 'split')
elseif config.options.position == "top" then elseif config.options.position == 'top' then
vim.cmd("topleft " .. config.options.height .. "split") vim.cmd('topleft ' .. config.options.height .. 'split')
end end
local window = vim.api.nvim_get_current_win() local window = vim.api.nvim_get_current_win()
local window_opts = { local window_opts = {
number = false, number = false,
relativenumber = false, relativenumber = false,
wrap = true, wrap = true,
spell = false, spell = false,
foldenable = false, foldenable = false,
signcolumn = "no", signcolumn = 'no',
colorcolumn = "", colorcolumn = '',
cursorline = true, cursorline = true,
} }
for key, value in pairs(window_opts) do for key, value in pairs(window_opts) do
vim.api.nvim_win_set_option(window, key, value) vim.api.nvim_win_set_option(window, key, value)
end end
M._window = window M._window = window
return window return window
end end
M.run_command = function(command, callback) M.run_command = function(command, callback)
local output = {} local output = {}
local add_line = function(_, data) local add_line = function(_, data)
output[#output + 1] = data output[#output + 1] = data
end end
vim.fn.jobstart(command, { vim.fn.jobstart(command, {
cwd = vim.fn.getcwd(), cwd = vim.fn.getcwd(),
on_stdout = add_line, on_stdout = add_line,
on_exit = function() on_exit = function()
callback(output) callback(output)
end, end,
}) })
end end
local is_win = function() local is_win = function()

View File

@ -14,22 +14,22 @@ M.set_handler = function(filetype, handler)
end end
M.run = function(bufnr) M.run = function(bufnr)
local buffer local buffer
if bufnr == nil or bufnr == 0 then if bufnr == nil or bufnr == 0 then
buffer = vim.api.nvim_get_current_buf() buffer = vim.api.nvim_get_current_buf()
else else
buffer = bufnr buffer = bufnr
end end
local filetype = vim.filetype.match({ buf = buffer }) local filetype = vim.filetype.match { buf = buffer }
local handler = M._handlers[filetype] local handler = M._handlers[filetype]
if not handler then if not handler then
print(string.format("No handler defined for filetype '%s'", filetype)) print(string.format("No handler defined for filetype '%s'", filetype))
return return
end end
handler(buffer) handler(buffer)
end end
return M return M