Commit Graph

297 Commits

Author SHA1 Message Date
Maxime Coste
cad5f37efd Fix register saving post -save-regs behaviour change 2018-07-05 07:54:28 +10:00
Maxime Coste
ec16969609 Do not reparse %sh{...} strings
Automatic reparsing of %sh{...}, while convenient in many cases,
can be surprising as well, and can lead to security problems:

'echo %sh{ printf "foo\necho bar" }' runs 'echo foo', then 'echo bar'.
we make this danger explicit, and we fix the 'nop %sh{...}' pattern.

To reparse %sh{...} strings, they can be passed to evaluate-commands,
which has been fixed to work in every cases where %sh{...} reparsing
was used..
2018-07-05 07:54:28 +10:00
Maxime Coste
86616c207d Merge remote-tracking branch 'lenormf/synchronized-write' 2018-07-04 19:46:40 +10:00
Frank LENORMAND
ab2eade28d rc: Synchronize important file writes
Fixes #2178
2018-07-04 09:55:05 +03:00
Maxim Baz
44f0230fe1
Add missing python3 keyword: nonlocal 2018-07-02 23:28:25 +02:00
Maxim Baz
7cfd0d1b39
trigger travis 2018-06-29 01:37:56 +02:00
Maxim Baz
d8a2588e9c
another attempt to fix macOS issue 2018-06-29 01:22:17 +02:00
Maxim Baz
c683b09287
Rename align-cursors-left to align-selections-left 2018-06-29 00:56:37 +02:00
Maxim Baz
5d689858df
Improve comment-line command 2018-06-28 23:47:48 +02:00
Tim Allen
3d0c19f8fb Prevent the :format command from triggering hooks.
The :format command is often called from a BufWritePre hook to format the
current buffer, however the :format command itself calls `:write` to store the
buffer in a temporary location, potentially causing an infinite recursion.

If we disable hooks while running :format, there's no danger of that occurring.
2018-06-20 21:11:58 +10:00
Delapouite
5305c6b1ff Add 'nop' keyword highlighting in .kak files 2018-06-01 10:46:05 +02:00
Delapouite
bbf484c596 Limit highlighter to line in grep buffers 2018-05-30 14:40:29 +02:00
Alyssa Ross
08c948f52b
Insert spaces after line comment markers
Every other text editor I've ever used does this, and this makes Kakoune
consistent with how comments work in e.g. its own source code.
2018-05-22 12:24:54 +01:00
Maxime Coste
8c6af54db3 c-family.kak: Fix comment line continuation behaviour
Fixes #2043
2018-05-19 14:15:16 +10:00
Maxime Coste
8e1646b702 c-family.kak: Remove unneeded itersel
itersel can get very expensive with many selections, it should only
be used when necessary.
2018-05-17 07:41:32 +10:00
gspia
bbd1fd6576 Comments for Idris 2018-05-04 10:22:17 +03:00
Maxime Coste
869736359a Make all fifo cleanup hooks run always
Those should not get prevented from running just because the user
disabled hooks, they are important for cleanup.
2018-04-26 08:31:36 +10:00
Maxime Coste
f99f0020dc Fix (again) C++ raw string highlighting 2018-04-25 21:19:04 +10:00
Maxime Coste
fea6bc9524 c-family.kak: Fix highlighting of raw strings 2018-04-22 09:40:45 +10:00
Maxime Coste
57baad4afd Make FaceRegistry scoped
set-face now takes a scope argument, and faces can be overridden on
a buffer or window basis.

colorscheme apply on global scope, which should be good enough for
now.

Fixes #1411
2018-04-07 16:27:50 +10:00
Maxime Coste
8eee5500ea Revert "Simplify comment-line command using trimming primitive"
This reverts commit e661fece72.
2018-03-30 09:29:05 +11:00
Maxime Coste
4a2125f752 make.kak: Fix Ninja compatibility for directory entering messages 2018-03-30 09:18:06 +11:00
Delapouite
e661fece72 Simplify comment-line command using trimming primitive 2018-03-27 19:53:13 +02:00
Frank LENORMAND
66f99a3802 rc kakrc: Highlight boolean values 2018-03-25 10:27:12 +03:00
Maxime Coste
42404ddb3a Merge remote-tracking branch 'Delapouite/kakrc' 2018-03-23 07:42:38 +11:00
Delapouite
754a96eb3e Add hl for declare-user-mode and enter-user-mode in kakrc.kak 2018-03-22 15:08:59 +01:00
gspia
056560131a Add a space to haskell commment-line comment string. 2018-03-22 13:56:07 +02:00
Maxime Coste
c6c501eb5b asciidoc.kak: Fix highlighting of _itallic_ markup
`_` is a word character, so the regex cannot be exactly the same
as for `*`.
2018-03-05 11:20:56 +11:00
Maxime Coste
5c247bf1dd c-family.kak: Do not mistake '\"' for a double quoted string start
Fixes #1893
2018-03-01 14:01:09 +11:00
Maxime Coste
3e50d39f8e comment.kak: recognize xml files 2018-02-28 15:07:25 +11:00
Maxime Coste
4d11bb20c3 Always collapse jumps in exec/eval, remove -collapse-jumps switch
There does not seem to be any reasonable use cases of not collapsing
jumps when the input is not comming from the user. Always collapse
them.

It could make sense to move jump collapsing out of context_wrap as
in general any action not comming directly from the user should
collapse them, at the moment a comment or mapping will not collapse
jumps, which is unfortunate.
2018-02-24 19:02:15 +11:00
Maxime Coste
e93c31ff0d doc.kak: stricter parsing of formatted text
Format markers such as *, _ or ` must be followed/preceeded by a non
whitespace character to be considered formatting marker.
2018-02-22 22:22:13 +11:00
Maxime Coste
026cf8af3a doc.kak: fix handling of lines begining with * or -
Those were considered as any other lines for paragraph joining,
threat them as a new paragraph start, to correctly handle asciidoc
lists.
2018-02-22 22:09:00 +11:00
Maxime Coste
9755f7f8f2 make.kak: Fix echoing of error message when jumping
The use of `%{...%reg{...}}` was not being expanded correctly, as
the enclosing %{...} prevents the internal %expand{...} from being
considered.

The introduction of an additional command allows us to bypass
quoting hell as the expansion of %reg{5} could contain arbitrary
text.
2018-02-19 21:43:43 +11:00
Maxime Coste
f8861734cf rc/: Replace simple uses of sed with tr 2018-02-18 15:00:30 +11:00
Maxime Coste
43f50c0852 Convert bundled scripts to ModeChange hook 2018-01-21 10:35:05 +11:00
Dan Rosén
a612432c8d Highlight python operators 2018-01-07 23:36:41 +01:00
Dan Rosén
40aaf63338 Highlight python doctests in docstrings 2018-01-07 23:36:41 +01:00
Maxime Coste
4740dbf9fa doc.kak: Fix anchor name completion 2017-12-29 09:37:04 +11:00
Maxime Coste
7072e65a28 Merge remote-tracking branch 'danr/typescript-comment' 2017-12-07 10:46:26 +08:00
Dan Rosén
fbe312e0d0 Add typescript to comment.kak 2017-12-06 20:50:05 +01:00
Maxime Coste
1b44056fce man.kak: Better support for renaming a man buffer
Fixes #1718
2017-12-06 14:49:38 +08:00
Maxime Coste
a9f1a23f35 man.kak: use shell-candidates instead of shell-completions 2017-12-06 14:10:10 +08:00
Maxime Coste
363a0c3a0d man.kak: Fix behaviour when called with no params with Posix shells
Seems dash nevers falls back for ${@-$blah}, it does not considers $@
to be empty. Use ${1-$blah} instead as we never have more than one
parameter.
2017-12-06 13:23:39 +08:00
Maxime Coste
35d2b2b4bc c-family.kak: Use regex custom text object to simplify some indent 2017-12-03 17:48:04 +08:00
Maxime Coste
1a38849086 c-family.kak: indent after parenthesis at end of line 2017-12-03 17:47:44 +08:00
Maxime Coste
74b0c98769 Merge remote-tracking branch 'occivink/comment' 2017-11-24 16:29:30 +08:00
Olivier Perret
ee117b9499 set registers directly instead of expanding options in exec 2017-11-23 10:30:10 +01:00
Frank LENORMAND
58ccf6b295 rc python: Highlight built-in exceptions 2017-11-18 11:56:47 +03:00
Maxime Coste
77b0ee1e19 Merge remote-tracking branch 'lenormf/extend-python-highlighters' 2017-11-14 18:08:27 +08:00
Frank LENORMAND
105d7a1276 rc python: Extend highlighted keywords and numbers 2017-11-14 12:50:20 +03:00
Maxime Coste
2ab9f65b36 c-family.kak: Use <a-S> in various auto indent hooks 2017-11-14 13:32:46 +08:00
Maxime Coste
9c964e97f0 c-family.kak: Highlight character literals later
That way it overrides integer literal highlighters in the case where
they conflict.
2017-11-14 11:45:30 +08:00
fsub
ee695ecf95 c-familiy.kak: improve highlighting of C++ literals 2017-11-12 18:16:20 +01:00
Maxime Coste
add7f7e76b Revert "c-family.kak: Remove invalid 'compl' keyword from C++ highlight"
This reverts commit f8dee65d6e.

compl is actually the alternate keyword for `~`.
2017-11-11 09:54:32 +08:00
Maxime Coste
f8dee65d6e c-family.kak: Remove invalid 'compl' keyword from C++ highlight 2017-11-09 10:43:46 +08:00
Maxime Coste
5791632a98 c-family.kak: use space separated words list 2017-11-09 10:25:03 +08:00
Maxime Coste
a131edb9b3 Merge remote-tracking branch 'fsub/c-family' 2017-11-09 10:09:58 +08:00
Maxime Coste
8aa35c0724 doc.kak: Use a github compatible anchor generation
Convert session names to lowercase and replace spaces with minus
to generate anchor names.
2017-11-08 20:15:46 +08:00
Maxime Coste
b8fdcff7b0 doc.kak: anchor/section completion support 2017-11-08 17:20:37 +08:00
Maxime Coste
b63f16e7a2 doc.kak: Support anchors and internal links
Underline links, support jumping to a specific anchor either in
the current page or another one, use those new features in some
pages.
2017-11-08 16:32:49 +08:00
Maxime Coste
d6b5240bdf doc.kak: Remove unused lines 2017-11-06 20:53:50 +08:00
Maxime Coste
73182de20c doc.kak: Support jumping on links using <ret> 2017-11-06 20:52:24 +08:00
Maxime Coste
19cda837ff doc.kak: Simplify completion script 2017-11-06 20:47:12 +08:00
fsub
db15f7adc5 c-family.kak: Add missing C++ keywords, attributes, and types 2017-11-05 10:11:59 +01:00
fsub
1ad83745c2 c-family.kak: Sort keywords, attributes, values, and decorators 2017-11-05 10:11:59 +01:00
Olivier Perret
16f42fe3a6 refactor comment.kak
* move most of the kakoune implementation outside of the shell scope
  to avoid unnecessary escaping
* let kakoune do the option expansions to avoid injection of special
  characters
* split block commenting options into two and do the < to <lt>
  conversion directly
* show error messages directly in the buffer rather than in *debug*

Fixes #1600 and #875
2017-11-03 13:20:02 +01:00
Olivier Perret
00d8716c79 commenting: move rust to the C-style group 2017-11-03 13:13:42 +01:00
Maxime Coste
9b216e0e79 Merge remote-tracking branch 'lenormf/fix-rc-aliases' 2017-11-03 19:32:30 +08:00
Frank LENORMAND
9127ed0d55 src rc: Rename exec/eval into execute-keys/evaluate-commands 2017-11-03 11:09:45 +03:00
Frank LENORMAND
c9b280b712 rc: Don't use command aliases to highlight keywords properly 2017-11-03 10:34:41 +03:00
Kylie McClain
79f725a558 sh: support mksh 2017-11-02 23:23:54 -04:00
Maxime Coste
b3daf6b746 doc.kak: Support rendering _italic_ text as well 2017-11-02 17:42:16 +08:00
Maxime Coste
4fabba3d12 doc.kak: Render documentation internally instead of relying on man
doc.kak now behaves as a basic asciidoc renderer. Asciidoc is unfortunately
still a dependency to generate the manpage of the `kak` command.
2017-11-02 10:03:24 +08:00
Maxime Coste
90865b65cd asciidoc.kak: Highlight ^=+ syntax sections 2017-11-02 09:52:18 +08:00
Maxime Coste
424b2389cb kakrc.kak: Fix highlighting of key words at start of buffer 2017-11-02 01:28:37 +08:00
Maxime Coste
c8257a58a5 kakrc.kak: set '-' as an additional word char 2017-10-28 13:43:04 +08:00
Maxime Coste
d7671f0cdf kakrc.kak: Fix static word definition 2017-10-28 13:43:04 +08:00
Maxime Coste
d49555fc75 Move highlighters into Scopes
That means we can now have highlighters active at global, buffer, and
window scope. The add-highlighter and remove-highlighter syntax changed
to take the parent path (scope/group/...) as a mandatory argument,
superseeding the previous -group switch.
2017-10-28 13:43:04 +08:00
Maxime Coste
d09924d24b asciidoc.kak: use a more tolerant block regex for
Get rid of the nasty backreference we were relying on.
2017-10-25 10:29:27 +08:00
Maxime Coste
0fa59e5fd2 rc/: Tweak some regexes to be compatible with our impl limitations
The upcoming custom implementation does not support arbitrary lookarounds,
and other advanced regex features. Simplify the regexes to avoid those.
2017-10-25 10:27:39 +08:00
Maxime Coste
bf6e5daa08 Use stricter regex syntax
boost regex tolerates non-escaped special characters, and escaped
non-special characters. Standardize on stricter syntax, where
special characters must be escaped, and non-special characters must
not.
2017-10-25 10:27:39 +08:00
Maxime Coste
80d661e6a7 rc/: More consistent uses of regex syntax
Always use \A \z for subject start/end, always \b for word boundaries
2017-10-25 10:27:25 +08:00
Maxime Coste
214f321951 Merge remote-tracking branch 'danr/Fix-introduced-mistake-in-kakrc-highlighting' 2017-10-23 16:33:26 +08:00
Maxime Coste
6d65d8e778 kakrc.kak: refactor grammar handling 2017-10-23 10:56:45 +08:00
Dan Rosén
577d84217a Fix introduced mistake in kakrc highlighting 2017-10-22 01:23:12 +02:00
Maxime Coste
6740e3cc0c Add some more keywords to kakrc highlighting 2017-10-21 18:48:35 +08:00
Dan Rosén
5b0f070300 Improve kakrc highlighter 2017-10-21 10:08:50 +02:00
Frank LENORMAND
1cfee17a16 rc man/doc: Don't show groff warnings
Sometimes the implementation of `man` will display errors, e.g.

```
<standard input>:4808: warning [p 54, 13.2i]: can't break line
```

Those errors are harmless but are still reported on the debug buffer,
so we hide them by redirecting the standard error stream to /dev/null.
2017-09-30 08:23:10 +03:00
Frank LENORMAND
1e3c343773 rc doc: Use POSIX flag -name instead of -iname 2017-09-30 08:15:14 +03:00
Frank LENORMAND
18e64c5c7d rc doc: Implement the -i flag of sed in a POSIX manner 2017-09-29 22:16:31 +03:00
Frank LENORMAND
f26854694e rc doc: Remove window hooks automatically assigned
When using the `man` filetype to make use of the text highlighters
of the `man.kak` script, the documentation pages inherit from the
window resizing hooks that won't work on `doc` buffers.

Fixes #1591
2017-09-29 22:12:09 +03:00
Maxime Coste
902724e558 c-family: auto close unions with a semicolon as well 2017-09-18 09:41:26 +09:00
Maxime Coste
420c6aca23 Change documentation directory towards $kak_runtime/doc 2017-08-03 15:00:02 +07:00
Maxime Coste
4dac61c864 Fix grep-next/prev-match not jumping correctly to first/last match
When used just after grepping, grep-next-match ended up jumping to
the second match, as `0g` is the same as `g`.

The fix itself is pretty ugly, a better one might be to distinguish
the `0` count from no count given, so that `0g` could fail with
"no such line" or similar.
2017-07-29 03:02:11 +07:00
Maxime Coste
6ab98f8bf8 Fix grep-jump on eol 2017-07-29 03:02:11 +07:00
Maxime Coste
9c4448ac41 Remove echo -color support, superseeded by echo -markup
`echo -color Error "blah"` is the same as `echo -markup '{Error}blah'`
Fixes #1512
2017-07-19 17:18:52 +02:00
Frank LENORMAND
21847a5f85 rc man: Avoid undefined behavior on expr
Looking up the man page for `index` was failing on systems using
GNU/coreutils. The `:man` command matched whatever page it was given with
the `expr` utility. This tool behaves as expected when it follows strictly
the POSIX standard but the GNU implementation introduces additional commands
(including `index`), about which the standard states:

```
The use of string arguments length, substr, index, or match produces unspecified results.
```

As a result, parsing the man page number is now implemented with pure
shell expansions, to avoid triggering an undefined behavior when the topic
searched is one of the keywords above.
2017-07-17 21:24:41 +03:00
Frank LENORMAND
74babc36b1 rc formatter: Don't force selection restoration
The `|` primitive now correctly restores selections, we don't need to
forcibly restore the main one after formatting anymore.
2017-07-14 11:21:48 +03:00
Frank LENORMAND
50b635ce2d rc c-family: Add a hook to the insert group 2017-06-29 13:29:48 +03:00