diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..79b58bc --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,5 @@ +repos: +- repo: https://github.com/JohnnyMorganz/StyLua + rev: v0.17.1 + hooks: + - id: stylua-github diff --git a/.stylua.toml b/.stylua.toml new file mode 100644 index 0000000..72cb891 --- /dev/null +++ b/.stylua.toml @@ -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 diff --git a/lua/runner/config.lua b/lua/runner/config.lua index 3424d09..f626b19 100644 --- a/lua/runner/config.lua +++ b/lua/runner/config.lua @@ -1,9 +1,9 @@ local M = {} local defaults = { - position = "right", -- options: top, left, right, bottom - width = 80, -- width of window when position is left or right - height = 10, -- height of window when position is top or bottom + position = 'right', -- options: top, left, right, bottom + width = 80, -- width of window when position is left or right + height = 10, -- height of window when position is top or bottom } M.options = {} diff --git a/lua/runner/handlers/helpers.lua b/lua/runner/handlers/helpers.lua index 2c7b0a2..bd02906 100644 --- a/lua/runner/handlers/helpers.lua +++ b/lua/runner/handlers/helpers.lua @@ -23,10 +23,10 @@ M.shell_handler = function(command, editable) local output_window = utils.create_window() vim.api.nvim_win_set_buf(output_window, output_buffer) - vim.fn.termopen(command, { - cwd = vim.fn.getcwd(), - }) - end + vim.fn.termopen(command, { + cwd = vim.fn.getcwd(), + }) + end end M.command_handler = function(command) @@ -45,27 +45,27 @@ M.choice = function(handlers) return vim.tbl_values(handlers)[1] end - return function(buffer) - local picker = pickers.new( - {}, - themes.get_dropdown({ - prompt_title = "Runner", - finder = finders.new_table({ - results = vim.tbl_keys(handlers), - }), - sorter = sorters.get_generic_fuzzy_sorter(), - attach_mappings = function(prompt_bufnr) - actions.select_default:replace(function() - actions.close(prompt_bufnr) - local handler_name = action_state.get_selected_entry()[1] - handlers[handler_name](buffer) - end) - return true - end, - }) - ) - picker:find() - end + return function(buffer) + local picker = pickers.new( + {}, + themes.get_dropdown { + prompt_title = 'Runner', + finder = finders.new_table { + results = vim.tbl_keys(handlers), + }, + sorter = sorters.get_generic_fuzzy_sorter(), + attach_mappings = function(prompt_bufnr) + actions.select_default:replace(function() + actions.close(prompt_bufnr) + local handler_name = action_state.get_selected_entry()[1] + handlers[handler_name](buffer) + end) + return true + end, + } + ) + picker:find() + end end return M diff --git a/lua/runner/handlers/init.lua b/lua/runner/handlers/init.lua index 11cc06e..386f147 100644 --- a/lua/runner/handlers/init.lua +++ b/lua/runner/handlers/init.lua @@ -1,12 +1,12 @@ local helpers = require("runner.handlers.helpers") local handlers = { - rust = require("runner.handlers.languages.rust"), - python = require("runner.handlers.languages.python"), - lua = helpers.command_handler("luafile %"), - javascript = require("runner.handlers.languages.nodejs"), - typescript = require("runner.handlers.languages.nodejs"), - vue = require("runner.handlers.languages.nodejs"), + rust = require('runner.handlers.languages.rust'), + python = require('runner.handlers.languages.python'), + lua = helpers.command_handler('luafile %'), + javascript = require('runner.handlers.languages.nodejs'), + typescript = require('runner.handlers.languages.nodejs'), + vue = require('runner.handlers.languages.nodejs'), } return handlers diff --git a/lua/runner/handlers/languages/nodejs/init.lua b/lua/runner/handlers/languages/nodejs/init.lua index 462f9a3..e47bfba 100644 --- a/lua/runner/handlers/languages/nodejs/init.lua +++ b/lua/runner/handlers/languages/nodejs/init.lua @@ -1,5 +1,5 @@ -local helpers = require("runner.handlers.helpers") -local utils = require("runner.handlers.utils") +local helpers = require('runner.handlers.helpers') +local utils = require('runner.handlers.utils') return function(buffer) utils.run_command(utils.script_path() .. "get-scripts.sh", function(output) @@ -13,9 +13,9 @@ return function(buffer) end end - local handlers = { - ["Run current file"] = helpers.shell_handler("node " .. vim.fn.expand("%")), - } + local handlers = { + ['Run current file'] = helpers.shell_handler('node ' .. vim.fn.expand('%')), + } for _, bin in pairs(bins) do handlers['Run "' .. bin .. '"'] = helpers.shell_handler("npm run " .. bin) diff --git a/lua/runner/handlers/languages/rust/init.lua b/lua/runner/handlers/languages/rust/init.lua index 57e87f5..033fb2b 100644 --- a/lua/runner/handlers/languages/rust/init.lua +++ b/lua/runner/handlers/languages/rust/init.lua @@ -1,5 +1,5 @@ -local helpers = require("runner.handlers.helpers") -local utils = require("runner.handlers.utils") +local helpers = require('runner.handlers.helpers') +local utils = require('runner.handlers.utils') return function(buffer) utils.run_command(utils.script_path() .. "get-bins.sh", function(output) diff --git a/lua/runner/handlers/utils.lua b/lua/runner/handlers/utils.lua index dec1369..9d70a8e 100644 --- a/lua/runner/handlers/utils.lua +++ b/lua/runner/handlers/utils.lua @@ -18,56 +18,56 @@ M.create_buffer = function() end M.create_window = function() - if M._window and vim.api.nvim_win_is_valid(M._window) then - vim.api.nvim_set_current_win(M._window) - return M._window - end + if M._window and vim.api.nvim_win_is_valid(M._window) then + vim.api.nvim_set_current_win(M._window) + return M._window + end - if config.options.position == "right" then - vim.cmd("botright " .. config.options.width .. " vsplit") - elseif config.options.position == "left" then - vim.cmd("topleft " .. config.options.width .. " vsplit") - elseif config.options.position == "bottom" then - vim.cmd("botright " .. config.options.height .. "split") - elseif config.options.position == "top" then - vim.cmd("topleft " .. config.options.height .. "split") - end + if config.options.position == 'right' then + vim.cmd('botright ' .. config.options.width .. ' vsplit') + elseif config.options.position == 'left' then + vim.cmd('topleft ' .. config.options.width .. ' vsplit') + elseif config.options.position == 'bottom' then + vim.cmd('botright ' .. config.options.height .. 'split') + elseif config.options.position == 'top' then + vim.cmd('topleft ' .. config.options.height .. 'split') + end - local window = vim.api.nvim_get_current_win() + local window = vim.api.nvim_get_current_win() - local window_opts = { - number = false, - relativenumber = false, - wrap = true, - spell = false, - foldenable = false, - signcolumn = "no", - colorcolumn = "", - cursorline = true, - } + local window_opts = { + number = false, + relativenumber = false, + wrap = true, + spell = false, + foldenable = false, + signcolumn = 'no', + colorcolumn = '', + cursorline = true, + } - for key, value in pairs(window_opts) do - vim.api.nvim_win_set_option(window, key, value) - end + for key, value in pairs(window_opts) do + vim.api.nvim_win_set_option(window, key, value) + end - M._window = window - return window + M._window = window + return window end M.run_command = function(command, callback) - local output = {} + local output = {} - local add_line = function(_, data) - output[#output + 1] = data - end + local add_line = function(_, data) + output[#output + 1] = data + end - vim.fn.jobstart(command, { - cwd = vim.fn.getcwd(), - on_stdout = add_line, - on_exit = function() - callback(output) - end, - }) + vim.fn.jobstart(command, { + cwd = vim.fn.getcwd(), + on_stdout = add_line, + on_exit = function() + callback(output) + end, + }) end local is_win = function() diff --git a/lua/runner/init.lua b/lua/runner/init.lua index f6504ff..0ebc0dd 100644 --- a/lua/runner/init.lua +++ b/lua/runner/init.lua @@ -14,22 +14,22 @@ M.set_handler = function(filetype, handler) end M.run = function(bufnr) - local buffer - if bufnr == nil or bufnr == 0 then - buffer = vim.api.nvim_get_current_buf() - else - buffer = bufnr - end - local filetype = vim.filetype.match({ buf = buffer }) + local buffer + if bufnr == nil or bufnr == 0 then + buffer = vim.api.nvim_get_current_buf() + else + buffer = bufnr + end + local filetype = vim.filetype.match { buf = buffer } - local handler = M._handlers[filetype] + local handler = M._handlers[filetype] - if not handler then - print(string.format("No handler defined for filetype '%s'", filetype)) - return - end + if not handler then + print(string.format("No handler defined for filetype '%s'", filetype)) + return + end - handler(buffer) + handler(buffer) end return M