Skip to content

1.1.0

Compare
Choose a tag to compare
@L3MON4D3 L3MON4D3 released this 13 Oct 16:59
· 471 commits to master since this release
563827f

Deprecations

extras.expand_conditions

See here
Necessitated by the subsequently introduced condition-objects.

Notable additions

Autotrigger-option for individual snippets (by @atticus-sullivan)

Previously the autotriggered-feature for a snippet could only (somewhat implicitly) be specified when adding snippets (add_snippets(..., {type = "autosnippets"}) or put the snippet into the second table returned by lua-loader-loaded files). This was originally due to a limitation (snippets had to be assigned to different tables ls.snippets or ls.autosnippets, as the OGs will remember :P) which has not existed for a while, and now we finally make use of its removal.

Basically:

ls.add_snippets("all", {
	s({trig = "trig", snippetType = "autosnippet"}, {
		t"autotriggerd"
	})
})

Will add the autotriggered snippet, without passing additional parameters to s.
For extra style, one may

local autosnippet = ls.extend_decorator.apply(s, {snippetType = "autosnippet"})

so autotriggered snippets can be easily created with autosnippet.

The old ways of creating autosnippets are still present, and not deprecated, so for adding bigger collections of snippets as autosnippets, they can be used as well.

Condition-objects (by @atticus-sullivan)

Condition-objects!! They are useful for combining multiple conditions into logical expressions:

-- two show-conditions
local function even_line()
	-- omitted
end
local function line_end()
	-- omitted
end

-- without condition-objects:
s(
	-- omitted
{
	show_condition = function(...)
		return even_line(...) and line_end(...)
	end
	-- show-conditions can also be passed to `condition`!
	condition = function(...)
		return even_line(...) and line_end(...)
	end,
})

-- with condition-objects:
local make_condition = require("luasnip.extras.conditions").make_condition
local even_line_obj = make_condition(even_line)
local end_line_obj = make_condition(end_line)

s(
	-- omitted
{
	-- "*" for `and`
	show_condition = even_line_obj * line_end_obj
	condition = even_line_obj * line_end_obj
})

Much more readable!

There are more details in the doc

Big Documentation overhaul (by me!)

The doc is now much more coherent and detailed, and concepts like jump-index
(i(1) <- that number) and node-reference (f(somefunction, {1,2}) <- those
numbers) are properly explained (and consistenly named!)

Readme (by @ejmastnak)

This is a smaller addition, but important nonetheless: The readme now
contains an improved Getting Started-section, and a section for external
resources (Videos, blogs, articles, anything really) on luasnip. Feel free to extend it!

Smaller additions

Full Changelog: v1.0.0...v1.1.0