Skip to content

Commit

Permalink
Feat: add luacheck
Browse files Browse the repository at this point in the history
  • Loading branch information
haorenW1025 committed Mar 25, 2020
1 parent ca0f0fe commit 682d1f1
Show file tree
Hide file tree
Showing 10 changed files with 33 additions and 31 deletions.
3 changes: 3 additions & 0 deletions .luacheckrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
globals = {
"vim",
}
13 changes: 6 additions & 7 deletions lua/completion.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ local vim = vim
local api = vim.api
local util = require 'utility'
local source = require 'source'
local lsp = require 'source.lsp'
local ts = require 'source.ts_complete'
local signature = require'signature_help'
local M = {}
Expand Down Expand Up @@ -59,14 +58,13 @@ local autoOpenHoverInPopup = function(bufnr)
if item['selected'] == -2 then
item['selected'] = 0
end
if item['items'][item['selected']+1]['kind'] == 'UltiSnips' then
-- TODO show Snippet information in floating window
else
if item['items'][item['selected']+1]['kind'] ~= 'UltiSnips' and
item['items'][item['selected']+1]['kind'] ~= 'Neosnippets' then
local row, col = unpack(api.nvim_win_get_cursor(0))
row = row - 1
local line = api.nvim_buf_get_lines(0, row, row+1, true)[1]
col = vim.str_utfindex(line, col)
params = {
local params = {
textDocument = vim.lsp.util.make_text_document_params();
position = { line = row; character = col-1; }
}
Expand Down Expand Up @@ -191,7 +189,7 @@ function M.on_InsertEnter()
if api.nvim_get_var('completion_auto_change_source') == 1 then
manager.autochange = true
end

-- reset source
source.chain_complete_index = 1
source.stop_complete = false
Expand Down Expand Up @@ -245,7 +243,8 @@ M.on_attach = function()
api.nvim_command("autocmd InsertLeave <buffer> lua require'completion'.on_InsertLeave()")
api.nvim_command("autocmd InsertCharPre <buffer> lua require'completion'.on_InsertCharPre()")
api.nvim_command [[augroup end]]
api.nvim_buf_set_keymap(0, 'i', api.nvim_get_var('completion_confirm_key'), '<cmd>call completion#wrap_completion()<CR>', {silent=true, noremap=true})
api.nvim_buf_set_keymap(0, 'i', api.nvim_get_var('completion_confirm_key'),
'<cmd>call completion#wrap_completion()<CR>', {silent=true, noremap=true})
end

return M
Expand Down
3 changes: 1 addition & 2 deletions lua/hover.lua
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
local vim = vim
local validate = vim.validate
local api = vim.api
local util = require 'utility'

local M = {}

Expand Down Expand Up @@ -240,7 +239,7 @@ function M.modifyCallback()
-- return { 'No information available' }
return
end
local bufnr, winnr = nil, nil
local bufnr, winnr
-- modified to open hover window align to popupmenu
if vim.fn.pumvisible() == 1 then
local position = vim.fn.pum_getpos()
Expand Down
4 changes: 2 additions & 2 deletions lua/signature_help.lua
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
local vim = vim
local protocol = require 'vim.lsp.protocol'
local validate = vim.validate
local api = vim.api
local M = {}
Expand Down Expand Up @@ -82,7 +81,8 @@ function M.open_floating_preview(contents, filetype, opts)
api.nvim_buf_set_lines(floating_bufnr, 0, -1, true, contents)
api.nvim_buf_set_option(floating_bufnr, 'modifiable', false)
-- TODO make InsertCharPre disappearing optional?
api.nvim_command("autocmd CursorMoved,BufHidden,InsertCharPre <buffer> ++once lua pcall(vim.api.nvim_win_close, "..floating_winnr..", true)")
api.nvim_command("autocmd CursorMoved,BufHidden,InsertCharPre <buffer> ++once lua pcall(vim.api.nvim_win_close, "
..floating_winnr..", true)")
return floating_bufnr, floating_winnr
end

Expand Down
14 changes: 9 additions & 5 deletions lua/source.lua
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,12 @@ local function checkCallback(callback_array)
return true
end

function M.addCompleteItems(complete_item)
table.insert(complete_items_map, complete_item)
end

local function getCompletionItems(items_array, prefix)
complete_items = {}
local complete_items = {}
for _,func in ipairs(items_array) do
vim.list_extend(complete_items, func(prefix, util.fuzzy_score))
end
Expand All @@ -51,10 +55,10 @@ function M.triggerCurrentCompletion(manager, bufnr, prefix, textMatch)
if complete_source.ins_complete then
ins.triggerCompletion(manager, complete_source.mode)
else
callback_array = {}
items_array = {}
local callback_array = {}
local items_array = {}
for _, item in ipairs(complete_source.complete_items) do
complete_items = complete_items_map[item]
local complete_items = complete_items_map[item]
if complete_items.callback == nil then
table.insert(callback_array, true)
else
Expand All @@ -67,7 +71,7 @@ function M.triggerCurrentCompletion(manager, bufnr, prefix, textMatch)
timer:start(20, 50, vim.schedule_wrap(function()
if checkCallback(callback_array) == true and timer:is_closing() == false then
if vim.api.nvim_get_mode()['mode'] == 'i' or vim.api.nvim_get_mode()['mode'] == 'ic' then
items = getCompletionItems(items_array, prefix)
local items = getCompletionItems(items_array, prefix)
util.sort_completion_items(items)
vim.fn.complete(textMatch+1, items)
if #items ~= 0 then
Expand Down
4 changes: 2 additions & 2 deletions lua/source/ins_complete.lua
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
-- luacheck: globals vim
local vim = vim
local api = vim.api
local M = {}
Expand All @@ -11,9 +12,8 @@ local ins_complete_table = {
['incl'] = "<c-x><c-i>",
['keyn'] = "<c-x><c-n>",
['keyp'] = "<c-x><c-p>",
['line'] = "<c-x><c-l>",
['omni'] = "<c-x><c-o>",
['spel'] = "<c-x>s" ,
['spel'] = "<c-x>s",
['tags'] = "<c-x><c-]>",
['thes'] = "<c-x><c-t>",
['user'] = "<c-x><c-u>",
Expand Down
4 changes: 1 addition & 3 deletions lua/source/lsp.lua
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
local vim = vim
local api = vim.api
local util = require 'utility'
local snippet = require 'source.snippet'
local util = require 'utility'
local M = {}

M.callback = false
Expand All @@ -15,7 +13,7 @@ M.getCallback = function()
return M.callback
end

M.triggerFunction = function(prefix, textMatch, bufnr, manager)
M.triggerFunction = function(prefix, _, bufnr, manager)
local params = vim.lsp.util.make_position_params()
M.callback = false
M.items = {}
Expand Down
10 changes: 5 additions & 5 deletions lua/source/snippet.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ local M = {}


local getUltisnipItems = function(prefix, score_func)
snippetsList = api.nvim_call_function('UltiSnips#SnippetsInCurrentScope', {})
local snippetsList = api.nvim_call_function('UltiSnips#SnippetsInCurrentScope', {})
local complete_items = {}
if vim.tbl_isempty(snippetsList) then
return {}
Expand All @@ -16,7 +16,7 @@ local getUltisnipItems = function(prefix, score_func)
key = 'true'
end
local score = score_func(prefix, key)
if score < #prefix then
if score < #prefix/2 then
table.insert(complete_items, {
word = key,
kind = 'UltiSnips',
Expand All @@ -30,7 +30,7 @@ local getUltisnipItems = function(prefix, score_func)
end

local getNeosnippetItems = function(prefix, score_func)
snippetsList = api.nvim_call_function('neosnippet#helpers#get_completion_snippets', {})
local snippetsList = api.nvim_call_function('neosnippet#helpers#get_completion_snippets', {})
local complete_items = {}
if vim.tbl_isempty(snippetsList) == 0 then
return {}
Expand All @@ -40,7 +40,7 @@ local getNeosnippetItems = function(prefix, score_func)
key = 'true'
end
local score = score_func(prefix, key)
if score < #prefix then
if score < #prefix/2 then
table.insert(complete_items, {
word = key,
kind = 'Neosnippet',
Expand All @@ -65,7 +65,7 @@ M.getCompletionItems = function(prefix, score_func, _)
return snippet_list
end

M.triggerCompletion = function(manager, bufnr, prefix, textMatch)
M.triggerCompletion = function(manager, _, prefix, textMatch)
local snippet_list = M.getCompletionItemsItem(prefix)
util.sort_completion_items(snippet_list)
if manager.insertChar == true then
Expand Down
6 changes: 3 additions & 3 deletions lua/source/ts_complete.lua
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ local function smallestContext(tree, parser, source)
-- Step 1 get current context
local contexts_query = ts.parse_query(parser.lang, api.nvim_buf_get_var(parser.bufnr, 'completion_context_query'))

local row_start, col_start, row_end, col_end = tree:range()
local row_start, _, row_end, _ = tree:range()
local contexts = {}

for _, node in contexts_query:iter_captures(tree, parser.bufnr, row_start, row_end) do
Expand All @@ -64,7 +64,7 @@ function M.getCompletionItems(prefix, score_func, bufnr)
-- Get all identifiers
local ident_query = api.nvim_buf_get_var(bufnr, 'completion_ident_query')

local row_start, col_start, row_end, col_end = tstree:range()
local row_start, _, row_end, _ = tstree:range()

local tsquery = ts.parse_query(parser.lang, ident_query)

Expand All @@ -81,7 +81,7 @@ function M.getCompletionItems(prefix, score_func, bufnr)

-- Only consider items in current scope, and not already met
local score = score_func(prefix, node_text)
if score < #prefix
if score < #prefix/2
and (is_parent(node, context_here) or smallestContext(tstree, parser, node) == nil or name == "func")
and not vim.tbl_contains(found, node_text) then
table.insert(complete_items, {
Expand Down
3 changes: 1 addition & 2 deletions lua/utility.lua
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
local protocol = require 'vim.lsp.protocol'
local vim = vim
local validate = vim.validate
local api = vim.api
local M = {}

Expand Down Expand Up @@ -72,7 +71,7 @@ function M.fuzzy_score(str1, str2)
local len1 = #str1
local len2 = #str2
local matrix = {}
local cost = 1
local cost
local min = math.min;

-- quick cut-offs to save time
Expand Down

0 comments on commit 682d1f1

Please sign in to comment.