mirror of
https://github.com/L3MON4D3/LuaSnip
synced 2024-09-16 21:54:03 +02:00
fix(loaders): trim whitespace around comma and at start/end of "scope".
Closes #1199. Apparently this is supported by vscode, and its' no biggie, so let's just do it too.
This commit is contained in:
parent
ee20ddd026
commit
365bebd79a
3 changed files with 24 additions and 1 deletions
|
@ -102,7 +102,7 @@ local function get_file_snippets(file)
|
|||
|
||||
-- vscode documents `,`, but `.` also works.
|
||||
-- an entry `false` in this list will cause a `ft=nil` for the snippet.
|
||||
local filetypes = parts.scope and vim.split(parts.scope, "[.,]")
|
||||
local filetypes = parts.scope and util.scopestring_to_filetypes(parts.scope)
|
||||
or { false }
|
||||
|
||||
local contexts = {}
|
||||
|
|
|
@ -281,6 +281,11 @@ local function normalize_opts(opts)
|
|||
}
|
||||
end
|
||||
|
||||
local function scopestring_to_filetypes(str)
|
||||
local str_trimmed = str:gsub("^%s+", ""):gsub("%s+$", "")
|
||||
return vim.split(str_trimmed, "%s*[.,]%s*")
|
||||
end
|
||||
|
||||
return {
|
||||
filetypelist_to_set = filetypelist_to_set,
|
||||
split_lines = split_lines,
|
||||
|
@ -296,4 +301,5 @@ return {
|
|||
get_load_fts = get_load_fts,
|
||||
add_file_snippets = add_file_snippets,
|
||||
normalize_opts = normalize_opts,
|
||||
scopestring_to_filetypes = scopestring_to_filetypes
|
||||
}
|
||||
|
|
17
tests/unit/loader_spec.lua
Normal file
17
tests/unit/loader_spec.lua
Normal file
|
@ -0,0 +1,17 @@
|
|||
local ls_helpers = require("helpers")
|
||||
local exec_lua, _, exec =
|
||||
ls_helpers.exec_lua, ls_helpers.feed, ls_helpers.exec
|
||||
|
||||
describe("luasnip.loaders.util:", function()
|
||||
ls_helpers.clear()
|
||||
exec("set rtp+=" .. os.getenv("LUASNIP_SOURCE"))
|
||||
|
||||
it("Correctly splits scopes with spaces.", function()
|
||||
local res = exec_lua[[return require("luasnip.loaders.util").scopestring_to_filetypes("javascript, typescript")]]
|
||||
assert.are.same({"javascript", "typescript"}, res)
|
||||
local res = exec_lua[[return require("luasnip.loaders.util").scopestring_to_filetypes(" javascript, typescript")]]
|
||||
assert.are.same({"javascript", "typescript"}, res)
|
||||
local res = exec_lua[[return require("luasnip.loaders.util").scopestring_to_filetypes("javascript , typescript ")]]
|
||||
assert.are.same({"javascript", "typescript"}, res)
|
||||
end)
|
||||
end)
|
Loading…
Reference in a new issue