Skip to content

Commit 77a743f

Browse files
authored
feat: add multi-way if (#16)
1 parent ae6266e commit 77a743f

File tree

4 files changed

+28
-0
lines changed

4 files changed

+28
-0
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ All notable changes to this project will be documented in this file.
66
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
77
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
88

9+
## [Unreleased]
10+
11+
- Expressions: Add multi-way if snippet (`ifmw`).
12+
913
## [1.2.0] - 2023-11-12
1014

1115
### Added

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,10 @@ ls.add_snippets('haskell', haskell_snippets, { key = 'haskell' })
195195

196196
![tty](https://github.com/mrcjkb/haskell-snippets.nvim/assets/12857160/8d0fbfeb-00c2-4644-b7a4-9d5993a852ea)
197197

198+
#### `haskell-snippets.expressions.if_expr_multiway`
199+
200+
- Trigger: `ifmw`
201+
198202
#### `haskell-snippets.expressions.lambdacase`
199203

200204
- Trigger: `\case`

doc/haskell-snippets.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ ExpressionSnippetCollection *ExpressionSnippetCollection*
8787
Fields: ~
8888
{if_expr} (Snippet) if expression
8989
{if_expr_multiline} (Snippet) if expression (multi-line)
90+
{if_expr_multiway} (Snippet) if expression (multi-way)
9091
{case} (Snippet) case expression (pattern match)
9192
{lambdacase} (Snippet) lambda case (pattern match)
9293

lua/haskell-snippets/expressions.lua

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
---@class ExpressionSnippetCollection
88
---@field if_expr Snippet if expression
99
---@field if_expr_multiline Snippet if expression (multi-line)
10+
---@field if_expr_multiway Snippet if expression (multi-way)
1011
---@field case Snippet case expression (pattern match)
1112
---@field lambdacase Snippet lambda case (pattern match)
1213

@@ -49,6 +50,24 @@ expressions.if_expr_multiline = s({
4950
})
5051
table.insert(expressions.all, expressions.if_expr_multiline)
5152

53+
expressions.if_expr_multiway = s({
54+
trig = 'ifmw',
55+
dscr = 'If expression (multi-way)',
56+
}, {
57+
text('if '),
58+
dynamic(1, util.indent_newline_text('| ')),
59+
insert(2),
60+
text(' -> '),
61+
insert(3),
62+
dynamic(4, util.indent_newline_text('| ')),
63+
insert(5),
64+
text(' -> '),
65+
insert(6),
66+
dynamic(7, util.indent_newline_text('| otherwise -> ')),
67+
insert(8),
68+
})
69+
table.insert(expressions.all, expressions.if_expr_multiway)
70+
5271
expressions.case = s({
5372
trig = 'case',
5473
dscr = 'Case expression (pattern match)',

0 commit comments

Comments
 (0)