|
|
3afb7e13af
|
Master merges into the as-chain lane, and as names what a pipe answers.
|
2026-09-26 17:22:07 +07:00 |
|
|
|
c1916ed819
|
e as g is any test of a condition's and chain, binding g for the rest of the chain and the block.
|
2026-09-26 17:07:01 +07:00 |
|
|
|
5a3d480edf
|
In .fln, x |> f(a) reads as f(x, a), below or, with the Emacs mode indenting and marking pipe lines.
|
2026-09-26 16:58:53 +07:00 |
|
|
|
d252eee2b2
|
In .fln x? tests that a value is present and narrows a local Option to its payload in the block it guards, and e? as g names what a test found.
|
2026-09-26 15:48:36 +07:00 |
|
|
|
178c129c97
|
A .fln name carries no ? or !, and .fln has T?, x ?? d, x!, if let over a plain name and a?.b chaining.
|
2026-09-26 14:54:58 +07:00 |
|
|
|
1b588df6b5
|
Master is merged into the when, get and if let lane after the review fixes.
|
2026-09-26 13:09:24 +07:00 |
|
|
|
f7781dbb78
|
Emacs offers no binding column after a binding's else block, and offers one after a first binding whose bracketed lambda has closed
|
2026-09-26 12:15:04 +07:00 |
|
|
|
62fd7b19bc
|
Master is merged into the when, get and if let lane.
|
2026-09-26 12:13:55 +07:00 |
|
|
|
5ee433a38f
|
A kept when answers an Option, get is a checked lookup over arrays, slices, Vecs and dyn, and if let reads as a two-arm match in both syntaxes.
|
2026-09-26 12:12:48 +07:00 |
|
|
|
349e2d7e72
|
Merge master
|
2026-09-26 12:09:56 +07:00 |
|
|
|
17ff7cb348
|
A binding ends its let's bindings only when its value ends in an open block, the message names the let's own line, and Emacs offers no binding column after such a value
|
2026-09-26 11:11:32 +07:00 |
|
|
|
3d5caf25ae
|
Merge master
|
2026-09-26 11:06:05 +07:00 |
|
|
|
c4452fc500
|
Merge master into the bit operators lane
|
2026-09-26 11:04:32 +07:00 |
|
|
|
473bf0a2b7
|
The bit operators are && || ^^ ~~ in .fln at Python's precedence, take integers only on typed and dyn values, and popcount, leading-zeros, trailing-zeros and the rotations exist on both backends.
|
2026-09-26 10:49:54 +07:00 |
|
|
|
63dc853121
|
A binding whose value is a block ends its let's bindings, a tab between let and its name is refused, and only a binding-shaped line under a let gets the alignment advice
|
2026-09-26 10:39:05 +07:00 |
|
|
|
fc463cf320
|
The .fln reader refuses loop and recur, flan convert refuses a .flan file that uses them, and every loop outside recur.flan is a while or until.
|
2026-09-26 10:31:53 +07:00 |
|
|
|
0e9d647aca
|
A let's binding lines must line up with its first name, may name an operator word in parentheses, are refused clearly after a block value, and at the top level may be a typed name alone
|
2026-09-26 09:56:54 +07:00 |
|
|
|
25e7db944f
|
In a .fln buffer a let's binding lines belong to its statement, TAB offers the column under its first name, and C-c C-e sends the group
|
2026-09-26 06:32:09 +07:00 |
|
|
|
04b29f283d
|
In a .fln buffer a closer-led line inside open brackets goes to the bracket's continuation column, save the closer of a lambda's block
|
2026-09-26 06:20:55 +07:00 |
|
|
|
b1404727b6
|
A lambda with a block prints wherever it is last in its brackets, an element after a block lambda is refused as not last, and TAB offers no column of a block whose brackets have closed
|
2026-09-26 06:09:47 +07:00 |
|
|
|
702ebdc9c5
|
In a .fln file a top-level let is a global and def is refused, while a let in a block or an evaluated expression stays local.
|
2026-09-26 05:39:59 +07:00 |
|
|
|
cde4f2ab1b
|
A .fln file writes classes and methods as class, generic, multi and method headers, and flan convert prints them so.
|
2026-09-26 05:39:59 +07:00 |
|
|
|
905a4c53be
|
A struct or union fits on one line, struct Pt(x: i32, y: i32), and flan convert writes that form when it fits.
|
2026-09-26 05:39:59 +07:00 |
|
|
|
de0c8791f3
|
A variable named like a header or clause word, data = 3 or on += 1, is read and printed as an assignment.
|
2026-09-26 05:39:59 +07:00 |
|
|
|
3f4e5a930f
|
A defining form written as the fallback call in a .fln buffer draws its head as a keyword and its name as a definition, and imenu lists it.
|
2026-09-26 05:39:59 +07:00 |
|
|
|
72c73117d6
|
A .fln file writes a type alias as type Row = Vec(i32), and flan check prints nothing for a file that checks unless given --defs.
|
2026-09-26 05:39:59 +07:00 |
|
|
|
1a97dfff77
|
A .fln file writes a condition's parent as struct DiskFull :parent IoError, a macro as macro repeat(i, n, & body) and a loop as loop x = a, y = b, and flan convert prints them so.
|
2026-09-26 05:39:59 +07:00 |
|
|
|
34ef99d1f2
|
A block lambda in code cut mid-line reads against its line's start, an arm or else value ending in => takes its block, and a missing comma between indices shows the indexed spelling
|
2026-09-26 05:37:22 +07:00 |
|
|
|
6e56fce7fa
|
flan-fln-mode reads a lambda's block inside brackets as statements, and the spec and manual write lambdas with =>
|
2026-09-26 05:27:28 +07:00 |
|
|
|
ba3ad6b1bc
|
In a .fln buffer ik takes the value on a one-line else or elif line, a wrapped fn header's return type is coloured, and C-u C-c C-c on a let the let above merges in stops at its value
|
2026-09-26 01:05:00 +07:00 |
|
|
|
02fcb1725e
|
The .fln mode knows else under a one-line if, one-line else, flat lets whose value goes on under them, typed lambda headers, restart reports and Dir.north arms, in its bounds, TAB, pause targets and colours
|
2026-09-26 00:52:55 +07:00 |
|
|
|
5c044a7b40
|
id and ad on a comment that belongs to no form find no object
|
2026-09-25 21:05:02 +07:00 |
|
|
|
095701b29b
|
A negated name counts as the name an arm's pattern binds, and a comment belongs to the form or block whose column it sits at
|
2026-09-25 21:02:19 +07:00 |
|
|
|
4d3688a519
|
Merge master into the .fln mode lane; a .fln arm sends its match whenever its value uses any name the pattern has, C-c C-s steps a .fln top-level form, and a comment block directly above a form is part of its text objects
|
2026-09-25 20:53:48 +07:00 |
|
|
|
f1bdcc8840
|
Editor code cut out mid-line carries :indent, the column its statement starts at, so the reader accepts its wrapped lines as the file does and reports every location where it is in the buffer
|
2026-09-25 20:35:33 +07:00 |
|
|
|
c3ba4c9e08
|
A wrapped condition or arm value is sent whole and reads as it does in the file, an arm whose value uses nothing its pattern binds sends that value, a match arm is a clause object, and dad on the last form takes the blank lines before it
|
2026-09-25 20:29:06 +07:00 |
|
|
|
267e84bada
|
In a .fln buffer numbers are coloured, a colon is not part of a name, TAB keeps a line at a valid column, evil line objects take their newline, and C-x C-e and C-u C-c C-c understand match arms, conditions, clauses and comments
|
2026-09-25 20:14:51 +07:00 |
|
|
|
8c814b39c1
|
.fln files open in flan-fln-mode, which evaluates, moves over, indents and edits statements, clauses and top-level forms, and every Flan mode derives from flan-base-mode
|
2026-09-25 17:13:12 +07:00 |
|