Commit Graph

2091 Commits

Author SHA1 Message Date
Frank LENORMAND
30ee97386d rc modeline: Use more idiomatic shell 2020-09-18 14:54:57 +03:00
Frank LENORMAND
7731fe4cb2 rc modeline: Print error messages correctly 2020-09-18 09:01:32 +03:00
Frank LENORMAND
6976b1dce4 rc modeline: Prevent command execution
This commit prevents specially crafted modelines from making the
editor execute arbitrary Kakoune commands.

By using a tabulation character as a separator, commands can be
injected in the value of the options listed in the modeline. For
example:

	# kak: tabstop=2;set-option	buffer	pwned	yes

Fixes #3735.
2020-09-18 09:01:32 +03:00
Maxime Coste
dbd7e4da79 Merge remote-tracking branch 'voroskoi/gopls' into master 2020-09-17 19:49:33 +10:00
Maxime Coste
fd658f6995 Merge remote-tracking branch 'lenormf/fix-3733' into master 2020-09-17 19:39:48 +10:00
Maxime Coste
b8f56a65ed Merge remote-tracking branch 'deviant/add-go-alternative-file' into master 2020-09-17 19:38:59 +10:00
Maxime Coste
cb047a4a7d Merge remote-tracking branch 'tototest99/ninja-syntax' into master 2020-09-17 19:34:54 +10:00
Maxime Coste
81163ce48a Merge remote-tracking branch 'Aajn/python-highlighter' into master 2020-09-17 19:33:51 +10:00
VÖRÖSKŐI András
9fe1a2a9a4 gopls: fixes based on krobelus@ review 2020-09-16 21:58:22 +02:00
antab
810689ad60 fix: variables adjacent to = and in build declaration 2020-09-16 21:09:27 +02:00
Frank LENORMAND
95c095f3fb rc modeline: Don't select more lines than configured
This commit addresses an off-by-one error that selected `modelines`+1
lines when looking for modelines in a buffer.

Note that setting `modelines` to 0 will still select one line.

Fixes #3733.
2020-09-16 11:00:15 +03:00
antab
ea4f2b8837 feat: add basic ninjafile support 2020-09-16 00:03:17 +02:00
David Arnold
1ff9895fe4 just: re-implment bash/sh interpreter 2020-09-15 16:32:07 -05:00
David Arnold
3857696df6
just-highlighter: pre call out to shebang regions 2020-09-15 16:10:40 -05:00
David Arnold
3770baaab0 fix justfile highlighter
This fixes serveral shortcomings of the current implementation:

- valid recipt definitions eg
foo bar="quz":
where previously interrupted by justfile/double_string
and therefore they where not highlighted correctly

- global variable assignments where not captured at all
2020-09-15 15:52:00 -05:00
Piotr Chrominski
bfbf4d2080 Fix python docstring highlighter
Escaped ' or " at the end of a docstring no longer break highlighting.
2020-09-15 22:01:55 +02:00
VÖRÖSKŐI András
2b18b1d088 rc/go-tools.kak: remove
Working functions replaced by gopls
Use kak-lsp if you need in place documentation and autocompletion
2020-09-15 01:02:19 +02:00
VÖRÖSKŐI András
568020d67b rc gopls.kak: initial import
Add support for the following gopls commands:
 - format
 - imports
 - definition
 - references

Thanks krobelus@ and lenormf@ for their review and suggestions.
2020-09-15 01:01:35 +02:00
V
c6b7e3d74a Add :alt command for go files 2020-09-10 00:23:46 +02:00
Maxime Coste
6f260c2ab2 Merge remote-tracking branch 'm-kru/latex' into master 2020-09-08 19:06:56 +10:00
Michał Kruszewski
0f63dd339a Provide better support for Go language.
1. Highlight short variable declaration operator :=.
2. 'while' is not go keyword.
3. Auto insert ')', '}', when line ends with '(' or '{'.
2020-09-07 21:48:06 +02:00
Maxime Coste
cfbff4e132 Merge remote-tracking branch 'kayhide/purescript-filetype' into master 2020-09-06 11:23:48 +10:00
Maxime Coste
c98d6c3062 Merge remote-tracking branch 'krobelus/initialize-shell-vars' into master 2020-09-06 10:52:07 +10:00
Maxime Coste
cf7955cdfb Merge remote-tracking branch 'lenormf/docstring-newline-format' into master 2020-09-06 10:50:51 +10:00
Maxime Coste
f84c550d30
Apply suggestions from code review
Co-authored-by: Screwtapello <thristian@gmail.com>
Co-authored-by: Johannes Altmanninger <aclopte@gmail.com>
2020-09-06 10:56:37 +10:00
Maxime Coste
22676647fe Merge remote-tracking branch 'krobelus/python-no-indent-after-comment' into master 2020-09-06 10:48:49 +10:00
Maxime Coste
97fd0c0510 Merge remote-tracking branch 'lenormf/repl-normalise' into master 2020-09-06 10:48:08 +10:00
Michał Kruszewski
705712f13b Improve latex support.
Auto insert "\end{[word]}" for "\begin{[word]}".
2020-09-05 16:14:22 +02:00
Tim Allen
a25cc215e8 Reference content goes in docstrings, explanations go in prose docs.
Also, make sure docstrings reference the prose docs, so people who stumble over
an interesting-looking command or option can find out more about it.
2020-09-04 19:20:50 +10:00
Hideaki Kawai
c613e3c7f1 Create purescript filetype 2020-09-04 11:33:08 +09:00
Tim Allen
66cc39cb14 Update plugin docs to not duplicate docstring information. 2020-09-03 17:18:19 +10:00
Tim Allen
9934788155 Add more user-oriented documentation for the documentation system. 2020-09-03 16:49:18 +10:00
Tim Allen
e3298c6320 Address code-review comments
- some wording changes in included documentation
- find supports multiple starting paths, we don't need to launch it 3 times
- Change the regex that trims the file extension to only trim the last extension

Some additional things I noticed:

- find should use -L to see through symlinks like the autoload processing does.
- find should check the user's autoload directory first, so users can override
  Kakoune's built-in documentation.
2020-09-03 15:21:54 +10:00
Tim Allen
d628cb50cf rc: Add some documentation for existing plugins.. 2020-09-03 01:55:36 +10:00
Tim Allen
4296305171 doc.kak: Also search through plugins (stdlib and per-user) for docs.
This makes the somewhat-dubious assumption that every plugin will have uniquely-
named documentation files, instead of automatically putting every plugin's docs
into a namespace. However, plugins already have to deal with flat namespaces for
commands, options, filetypes, etc. so one more shouldn't hurt.

Fixes #2466.
2020-09-03 01:19:20 +10:00
Frank LENORMAND
0cd706254a rc clang grep: Make docstrings more readable 2020-09-02 11:57:34 +03:00
Johannes Altmanninger
407c72d90a Clear unwanted environment variable
This adds two things I forgot in
9a7d8df4 (Avoid accidentally using environment variables in sh scopes)

Mea culpa, the problem was that I was skipping matches with "filetype"
because that's usually just a hook parameter as in "WinSetOption filetype=.."

	rg --pcre2 '\b(?!filetype=)\w+=' rc/

So I missed these two cases where a shell variable is actually called "filetype".

The one in git.kak was not a problem because show_git_cmd_output is only
ever called with sane inputs.  However, file.kak does use the filetype
environment variable for many mime types, for example:

	filetype=somefiletype\''; echo -debug injection; nop '\' kak /dev/null

Will run the echo since /dev/null has mime type "inode/chardevice"
2020-09-02 06:54:19 +02:00
Johannes Altmanninger
e1de4aa118 python.kak: Do not indent after comments ending in :
Fixes #3693

This will not work for lines like the one below but I think that's okay
because it does work for most comments.

	foo() # foo:
2020-09-02 06:44:36 +02:00
Frank LENORMAND
87f9be6723 rc repl: Normalise REPL commands
It's unclear what the `send-text` alias does at first glance,
so prefixing it with "repl-" both fixes that and helps make it
discoverable via the command prompt's fuzzy matcher.

The `repl` alias also seems too generic a name, the "-new" suffix
should hopefully give a hint that it creates a new window.
2020-09-01 13:34:52 +03:00
Frank LENORMAND
3145e3e939 rc markdown: Highlight trailing spaces properly
This commit addresses the following issues:

* highlight trailing space characters with the `meta` face, instead of
  `PrimarySelection`
* make the regex more readable by using a capture group in stead of
  `\K`
* specifically match space characters, not other horizontal whitespace
  characters
* match two or more space characters

Reference[1]:

> When you do want to insert a <br /> break tag using Markdown, you
> end a line with two or more spaces, then type return.

[1] https://daringfireball.net/projects/markdown/syntax#p

Note that the original reproducer doesn't seem to work anymore,
probably because of changes made to how lists are highlighted.

Fixes #911
2020-09-01 13:12:58 +03:00
Ludvig Böklin
0e84cdb016 Mercury-lang filetype support 2020-08-31 16:36:43 +02:00
Maxime Coste
4793a4e8ce Allow multiple arguments in tmux repl
Fixes #3680
2020-08-30 10:53:03 +10:00
Johannes Altmanninger
9a7d8df447 Avoid accidentally using environment variables in sh scopes
On the instances with altfile this was already the case, but this makes it more obvious.

Closes #3673
2020-08-24 19:01:05 +02:00
Maxime Coste
4b7fd68d48 Merge remote-tracking branch 'krobelus/indent-after-keyword' 2020-08-24 19:24:19 +10:00
Maxime Coste
beeaf19801 Merge remote-tracking branch 'krobelus/highlight-nested-variable-expansions' 2020-08-24 19:23:35 +10:00
Johannes Altmanninger
ab76ec981a Avoid extra indent when line does not end on keyword
For example there was an indent after a line like "echo todo" with filetype sh
because the "do" in "todo" was recognised as keyword.
2020-08-23 19:15:52 +02:00
Johannes Altmanninger
473967df04 fish.kak: add missing highlighting for builtins true and string
I forgot them last time, sorry for the noise
2020-08-23 19:15:52 +02:00
Johannes Altmanninger
caf9739329 sh.kak: Don't leak highlighting of nested variable expansions
Fixes #3675
2020-08-23 19:15:52 +02:00
Maxime Coste
78a7c5fe9b Merge remote-tracking branch 'alexherbo2/kakrc' 2020-08-23 13:59:41 +10:00
Maxime Coste
7f5959d295 Merge branch 'grep' of http://github.com/vbauerster/kakoune 2020-08-23 13:57:40 +10:00
Alex Leferry 2
3f8d3dcf86 kakrc: Add trigger-user-hook keyword 2020-08-22 23:16:46 +02:00
Maxime Coste
0b3b912ffc Merge remote-tracking branch 'SolitudeSF/nim' 2020-08-20 19:00:36 +10:00
Maxime Coste
4e4a65e944 Merge branch 'sh-insert' of http://github.com/SeerLite/kakoune 2020-08-17 20:03:12 +10:00
Maxime Coste
83685501ea Merge remote-tracking branch 'caksoylar/fix-python-ops' 2020-08-17 19:59:43 +10:00
SeerLite
e0c756d943 kakrc.kak: Split auto-insert and auto-indent hooks 2020-08-14 23:43:43 -04:00
SeerLite
1af4a1b1a8 sh.kak: Split auto-insert and auto-indent hooks 2020-08-14 23:42:52 -04:00
Vladimir Bauer
649e252f75 bring *grep* buffer to front in context of toolsclient 2020-08-14 00:52:22 +05:00
Cem Aksoylar
03032d6c3e Add assignment expression := (walrus) operator 2020-08-12 23:12:35 -07:00
Cem Aksoylar
e9b0e9a57d Fix <> and ** operators highlighting 2020-08-12 23:11:43 -07:00
Parasrah
151fe01a5c
fix #3651
Similar to Jinja, getting `eex` highlighting in *.ex files
will require users to setup a filetype hook similar to the
following:

hook global WinSetOption filetype=elixir %{
    require-module eex
    add-highlighter window/eex ref eex
}

This is done both to fix a circular dependency between the `elixir`
and `eex` modules, and avoid polluting `elixir` files with false
positives from `eex` highlighting given `eex` is framework specific
2020-08-12 19:14:27 -06:00
SolitudeSF
328ef122ae
Update keywords and suffixes in nim.kak 2020-08-07 12:59:00 +03:00
Maxime Coste
ba7831035f Merge remote-tracking branch 'johnisom/crystal-filetype' 2020-08-03 18:57:45 +10:00
John Isom
72f658f896 Replace my implementation of crystal-insert-on-new-line with already-existing ruby one
This fixed a weird bug where if you were typing in the top level scope of a
program (no indentation before statements), the `end`s wouldn't be inserted
for you.
2020-08-02 11:39:59 -06:00
John Isom
f59bdc614f Fix typo in comment 2020-08-02 11:33:56 -06:00
John Isom
fdf38ecc5e Fix auto indentation for if/case and else 2020-08-02 11:28:27 -06:00
John Isom
6cf39a5f4f Fix auto indentation for if/case and else 2020-08-02 11:22:28 -06:00
Maxime Coste
616f6bbe9b Merge remote-tracking branch 'krobelus/fail-on-missing-tools' 2020-08-02 16:50:33 +10:00
Maxime Coste
f60b0a1441 Merge remote-tracking branch 'johnisom/ruby-indentation' 2020-08-02 16:25:07 +10:00
John Isom
8a02bafe0d Beautify indenting in add-highlighter region for percent literals 2020-08-01 13:54:16 -06:00
John Isom
dee96f8e82 Improve syntax highlighting of Ruby percent literals
The syntax highlighting has been broken down into 3 main categories:
string: string, array of words
variable: symbol, array of symbols
meta: regexp, shell execution
2020-08-01 13:37:40 -06:00
John Isom
92558bb675 Add rule for % string literals without bracket/style chars; no recurse yet
Becuase %Q^hello^ is a perfectly valid Ruby string literal. Strange, I know.
2020-08-01 13:18:47 -06:00
John Isom
e858df3ca2 Add 'else' to auto deindent/align logic in context of 'case' statement 2020-08-01 12:12:48 -06:00
John Isom
57e9719c25 Add 'else' to auto deindent/align logic in context of 'case' statement 2020-08-01 11:57:38 -06:00
John Isom
322d0659fd Add 'when' to list of keywords that signifies end for ruby-insert-on-new-line 2020-08-01 11:54:57 -06:00
John Isom
dbb548af2d Fill in implementation of crystal-insert-on-new-line 2020-08-01 11:46:35 -06:00
John Isom
c36583524c Reorder definition of 3 indent/insert commands 2020-08-01 11:32:16 -06:00
John Isom
0d4dfbc349 Implement copying comment char (#) and whitespace after it 2020-08-01 11:31:28 -06:00
John Isom
8f0843978e Beautify indentation of 'crystal-indent-on-char' 2020-08-01 11:19:36 -06:00
John Isom
a6329b4bfc Fix deindentation of end to make it go to the right level 2020-08-01 11:18:41 -06:00
John Isom
d6e3c1ff19 Fix deindenting nested blocks/statements 2020-08-01 10:52:26 -06:00
John Isom
145f2db741 Add rule to align 'end' with opening statement 2020-08-01 10:35:34 -06:00
John Isom
0fe71ebada Add deindentation rule for 'rescue' statement 2020-08-01 10:33:35 -06:00
John Isom
21c083f47c Add rule to align 'when' to 'case' 2020-08-01 10:32:45 -06:00
John Isom
b7490d853d Add support for deindenting rescue statment when part of def (instead of just begin) 2020-08-01 10:28:54 -06:00
John Isom
76eadef00b Add rule to align else/elsif to opening if 2020-08-01 10:27:51 -06:00
John Isom
e84ebfdfab Replace ') <a-&>' with '1<a-&>' 2020-08-01 10:16:48 -06:00
John Isom
2c382de1e8 Add indenting after starting structure/opening statement 2020-08-01 10:08:47 -06:00
John Isom
ee842da85a Replace manual whitespace trimming to use function created in prev. commit 2020-08-01 09:59:53 -06:00
John Isom
62ac42bb23 Add 'crystal-trim-indent' command
This removes trailing whitespaces from the end of lines
2020-08-01 09:58:21 -06:00
John Isom
783fac3d61 Remove single quotes from 'execute-keys -draft ...' keys 2020-08-01 09:56:02 -06:00
John Isom
0063e4c4f5 Collapse 'try %{ execute-keys ... }' blocks to one line 2020-08-01 09:55:15 -06:00
John Isom
73f5f32385 Wrap all 'indent-on-new-line' commands in 'evaluate-commands -no-hook -draft -itersel' 2020-08-01 09:53:51 -06:00
John Isom
b23a85e747 Beautify percent string literals highlighters spacing/indentation 2020-08-01 09:50:27 -06:00
John Isom
0c591baae3 Add 'crystal-indent-on-char' and 'crystal-insert-on-new-line' hooks and functions 2020-08-01 09:49:53 -06:00
John Isom
591cb83da4 Rename 'crystal-new-line-inserted' to 'crystal-indent-on-new-line'
This gives the function clear responsibility, whereas the naming
before was unclear
2020-08-01 09:39:08 -06:00
John Isom
3248f7279c Deindent everything in the 'provide-module crystal...' block 2020-08-01 09:36:14 -06:00
John Isom
a78b6e6ccb Change 2-space indentation to 4-space 2020-08-01 09:34:55 -06:00
John Isom
5c124db5d9 Replace cat emojis with section signs
Many terminal emulators or fonts don't support the cat emoji, and the section
sign (§) is more semantically correct than a cat.
2020-08-01 09:30:12 -06:00
John Isom
dc378da87f Add section comments to crystal.kak 2020-08-01 09:27:21 -06:00
John Isom
79fa50dc3e Add namespacing to crystal hooks 2020-08-01 09:24:06 -06:00
John Isom
c793712318 Fix ruby-indent-on-char 2020-07-31 19:24:19 -06:00
Maxime Coste
5292990a0d Fix invalid quoting in python.kak 2020-07-31 15:45:34 +10:00
Maxime Coste
8d51a99a3b Merge remote-tracking branch 'pickfire/rust-highlight' 2020-07-31 07:50:14 +10:00
Kylie McClain
25dafd55fe asciidoc: Add a highlighters for links 2020-07-30 16:56:56 -04:00
Kylie McClain
a2c378c7b3 asciidoc: Add a highlighter for admonition paragraphs 2020-07-30 16:56:56 -04:00
Kylie McClain
e845495cc3 asciidoc: Add a highlighter for [%options] 2020-07-30 16:56:56 -04:00
Kylie McClain
b52c2a532d asciidoc: Add support for negated attributes 2020-07-30 16:56:56 -04:00
Kylie McClain
ad2f61f91a asciidoc: Add a highlighter for list titles 2020-07-30 16:56:56 -04:00
Kylie McClain
04721b8425 asciidoc: Add a highlighter for in-word italics as well 2020-07-30 16:56:52 -04:00
Kylie McClain
a8f3ff21dd asciidoc: Add a highlighter for attribute referencing 2020-07-30 16:50:33 -04:00
Kylie McClain
41532cd3e0 asciidoc: Add comments for clarity 2020-07-30 16:50:31 -04:00
Kylie McClain
7274092955 asciidoc: Add a highlighter for in-word bolding 2020-07-30 16:46:11 -04:00
Maxime Coste
76f1b7a5f9 Merge remote-tracking branch 'tmccombs/asciidoc-comments' 2020-07-30 21:22:17 +10:00
Maxime Coste
1efeb75e83 Merge remote-tracking branch 'somasis/asciidoc-bullet-fix' 2020-07-30 21:18:57 +10:00
Maxime Coste
55fbdb3606 Merge remote-tracking branch 'johnisom/deindent-closing-braces' 2020-07-30 21:14:37 +10:00
Maxime Coste
b322a1f29c Merge remote-tracking branch 'krobelus/highlighting' 2020-07-30 21:09:04 +10:00
Maxime Coste
ac24b72f61 Merge remote-tracking branch 'pickfire/patch-1' 2020-07-30 21:07:26 +10:00
Maxime Coste
e4c27df5f5 Merge remote-tracking branch 'krobelus/done-deindent' 2020-07-30 21:07:03 +10:00
Maxime Coste
898945c8db Merge remote-tracking branch 'krobelus/tmux-terminal-use-client-pane' 2020-07-30 21:05:24 +10:00
John Isom
6258646f41 Fix deindentation in zig.kak 2020-07-29 21:46:51 -06:00
John Isom
4a49868f2c Fix deindentation in sh.kak 2020-07-29 21:31:21 -06:00
John Isom
085fcc2088 Fix deindentation in scala.kak 2020-07-29 21:25:55 -06:00
John Isom
d5fe3a2b12 Fix deindentation in sass.kak 2020-07-29 21:22:38 -06:00
John Isom
cc30131e16 Fix my issues in gluon.kak 2020-07-29 21:22:20 -06:00
John Isom
6c02f80935 Add indent-on-closing-brace rule to sass.kak 2020-07-29 21:10:43 -06:00
John Isom
e02a3711fa Fix my issues in gluon.kak 2020-07-29 21:07:43 -06:00
John Isom
d77fe33e9a Fix my issues in python.kak 2020-07-29 20:45:54 -06:00
John Isom
cf7eab62bd Fix already-existing error in ragel.kak 2020-07-29 20:41:21 -06:00
John Isom
70d1aa114b Fix deindentation in protobuf.kak 2020-07-29 20:41:18 -06:00
John Isom
53188e66c7 Fix deindentation in python.kak 2020-07-29 20:41:14 -06:00
John Isom
14514422db Fix deindentation in ragel.kak 2020-07-29 20:41:05 -06:00
John Isom
858b0dd1c9 Update deindentation in nix.kak 2020-07-29 20:12:54 -06:00
John Isom
5284196cb3 Update deindentation in cue.kak 2020-07-29 17:02:54 -06:00
John Isom
e43981422e Update deindentation in java.kak 2020-07-29 17:02:50 -06:00
John Isom
9c957167fa Update deindentation in c-family.kak 2020-07-29 15:14:35 -06:00
John Isom
9560ef3dd5 Update deindentation in gluon.kak 2020-07-29 15:13:36 -06:00
John Isom
1951f19fd8 Update deindentation rule for awk.kak, cabal.kak, go.kak 2020-07-29 15:06:27 -06:00
John Isom
29e94c46e0 Fix already-existing bug in javascript.kak 2020-07-29 15:04:14 -06:00
John Isom
9d4e33c775 Clean up my previous updates 2020-07-29 09:40:58 -06:00
John Isom
bad751197a Update deindenting in css.kak 2020-07-29 09:35:36 -06:00
John Isom
528feb3422 Update deindenting in dart.kak and javascript.kak 2020-07-29 09:34:29 -06:00
John Isom
4a77566ee6 Update deindenting in cabal.kak 2020-07-29 09:32:43 -06:00
John Isom
21bf092230 Update deindenting in dart.kak 2020-07-29 09:31:20 -06:00
John Isom
2b86826d5a Fix already-existing error in javascript.kak 2020-07-29 09:28:46 -06:00
John Isom
27705d402f Update deindenting in javascript.kak 2020-07-29 09:28:32 -06:00
John Isom
f84fd84b26 Update deindenting in json.kak 2020-07-29 09:27:26 -06:00
John Isom
dc4508d05f Update deindenting in d.kak 2020-07-29 09:07:02 -06:00
John Isom
fb838b9f33 Update deindenting in perl.kak 2020-07-29 08:56:19 -06:00
John Isom
1eb34996e1 Merge branch 'deindent-closing-braces' into HEAD 2020-07-29 08:55:48 -06:00
John Isom
90988f5ee9 Merge commit '84a08982' into HEAD 2020-07-29 08:55:19 -06:00