Commit Graph

1566 Commits

Author SHA1 Message Date
Maxime Coste
54ba6a44c8 Merge remote-tracking branch 'occivink/refactor-format' 2019-09-15 09:01:19 +10:00
Maxime Coste
fb60eea66d Merge remote-tracking branch 'lenormf/fix-latex' 2019-09-15 09:00:25 +10:00
Olivier Perret
82d99aa12b Refactor formatter.kak
The 'format' command is split into two, 'format-selections' and
'format-buffer' which relies on the former.
2019-09-12 18:53:06 +02:00
Maxime Coste
64511baceb Merge remote-tracking branch 'mogenson/editorconfig' 2019-09-08 22:57:14 +10:00
Frank LENORMAND
1aea592b76 rc latex: Highlight DTX and STY files 2019-09-05 10:19:39 +02:00
Frank LENORMAND
b3287a74cb rc latex: Highlight .cls files as LaTeX
When .cls files are opened, the local `filetype` option is automatically
set to `tex`, which isn't supported.
2019-08-24 20:36:34 +02:00
Michael Mogenson
37ded5e400 Check if buffile is path before loading editorconfig settings
Check if buffile is a full path by checking for the beginning
'/' character in editorconfig-load command. This avoids a parsing
error from feeding a *scratch*/*debug*/*grep*/etc. buffer name to the
editorcofig command. Don't clear editorconfig hooks until after checking
for a valid bufffile path. This way, opening the *debug* buffer will
not clear the hooks from a previously parsed .editorconfig file. If
trim_trailing_whitespace is true, print the hook directly from awk. This
removes the need to save a editorcofig_trim_trailing_whitespace option.

Note: Setting the max_line_length requires a window to be created.
Therefore, a global hook to load .editorconfig settings should be:

    hook global WinCreate .* %{editorconfig-load}
2019-08-20 14:55:17 -04:00
Maxime Coste
292efe1b37 Merge remote-tracking branch 'andreyorst/patch-2' 2019-08-19 22:30:16 +10:00
Maxime Coste
7d8fb135a9 Merge remote-tracking branch 'codesoap/makefile' 2019-08-19 22:25:18 +10:00
Maxime Coste
5e2f123baf Merge branch 'master' of https://github.com/aecepoglu/kakoune 2019-08-19 22:24:14 +10:00
Maxime Coste
349586b464 Merge remote-tracking branch 'andreyorst/fix-rust-meta-attributes' 2019-08-19 22:20:13 +10:00
Maxime Coste
0f5389700e Merge remote-tracking branch 'nhey/master' 2019-08-19 22:19:29 +10:00
Andrey Orst
427153b8e9
remove wrong '+' from awk regex 2019-08-12 22:18:26 +03:00
nhey
4722db7103 Highlight parenthesized paths. Also change '()' to '§' for module quoting. 2019-08-12 18:07:32 +02:00
tawsi-melek
3f405b00f1 Revert back to previous char literal highlighter as it's more precise 2019-08-12 17:17:20 +02:00
tawsi-melek
228a8dd9ae Fix some more edge cases
* Adapt the char literal highlighter from c-family.kak
* Fix line comment adjacent to char literal not being highlighted
* Fix single quote terminating a double quote string
2019-08-12 16:40:35 +02:00
tawsi-melek
1c58e5aa90 Improve single line comments
* '#' now gets highlighted as a char literal
* Remove highlighting for comment tags and escape sequences
2019-08-08 22:47:22 +02:00
tawsi-melek
93e64b4541 Some more improvements
* Fix keywords in comments being highlighted
* Highlight Nim's escape sequences for strings
* Highlight common comment tags
* Add on/off to the highlighted boolean values
* Remove redundant regex highlighter for comments
* Fix autoindent indenting lines more than it should
2019-08-08 21:17:55 +02:00
Andrey Orst
396236f728 support raw strings withing the meta attributes 2019-08-07 11:37:02 +03:00
Andrey Orst
3156ecacc3 fix #3043 2019-08-06 17:02:51 +03:00
tawsi-melek
5ca0b9baa3 Enum too 2019-08-06 00:00:38 +02:00
tawsi-melek
ff7397b593 nim.kak: Add auto-indent after tuple and object
Before:
```nim
type
  MyType = tuple
  myint: int     # This line needs to be indented manually
```

After:
```nim
type
  MyType = tuple
    myint: int     # Lines after 'tuple' are now indented automatically
```
2019-08-05 22:02:56 +02:00
Maxime Coste
6eec6e656d Merge remote-tracking branch 'lenormf/fix-python-decorators' 2019-08-04 20:21:20 +10:00
Jason Felice
ba672623bc Insert Clojure ns directive for new files 2019-07-31 09:38:09 -04:00
codesoap
e502097d01 makefile.kak: require whitespace after target 2019-07-30 14:43:11 +02:00
codesoap
6e86766966 makefile.kak: remove reqex mismatch between highlight and indent 2019-07-30 10:00:04 +02:00
codesoap
4c3795faa2 makefile.kak: Refine regex for target
Multiple targets and the target separators ':', '::' and '!' are now
supported.
2019-07-30 09:55:25 +02:00
Frank LENORMAND
ff52bd7027 rc python: Highlight indented decorators with .
Make sure decorators are on their own line, and don't stop highlighting at
the first dot when they are imported, e.g.

```
import enum

@enum.unique
class A(enum.Enum):
    …
```

Ideally highlighting shouldn't stop at the first parenthesis either
(e.g. `@foo(['1'])`), but the current code somewhat highlights the contents
of the parens already, which is good enough in most cases.
2019-07-26 13:01:58 +03:00
Maxime Coste
550feb1706 Merge remote-tracking branch 'andreyorst/rust-highlighting' 2019-07-25 17:48:04 +10:00
Maxime Coste
6e1e79ed19 Merge branch 'master' of http://github.com/cglogic/kakoune 2019-07-25 17:26:41 +10:00
Oleh Hushchenkov
8fc705d4cc Fix c-family indent on opening curly brace after if-else 2019-07-25 09:58:33 +03:00
Maxime Coste
65327da4cf Merge remote-tracking branch 'laelath/markdown-lazy-load' 2019-07-24 17:38:00 +10:00
Justin Frank
a15ff0ffc3 Move module aliases to after main module definition 2019-07-22 23:48:30 -07:00
Justin Frank
8941002ce0 Give hooks a group so they're cleaned up 2019-07-22 19:03:04 -07:00
Justin Frank
89b50daa66 Use module alias pattern for markdown dynamic loading 2019-07-22 19:01:40 -07:00
aecepoglu
8691c1557a
ocaml.kak fix '"' and char literals 2019-07-22 23:49:15 +03:00
Andrey Orst
677d1efb23 move regex highlighters to the top, add method, field and function hl 2019-07-22 22:32:26 +03:00
codesoap
090c0b4db1 Allow / in target when highlighting in makefile.kak 2019-07-22 17:32:25 +02:00
Andrey Orst
3c0a350079 require module the old way 2019-07-22 18:22:44 +03:00
Andrey Orst
a81eb158be extend Rust highlighting 2019-07-22 15:56:29 +03:00
Maxime Coste
837416ea38 Merge remote-tracking branch 'MarSoft/nix-syntax' 2019-07-21 12:36:56 +10:00
Maxime Coste
d05ef24471 Merge remote-tracking branch 'gaeulbyul/css-comment' 2019-07-21 12:34:28 +10:00
Maxime Coste
268af7f61c Merge remote-tracking branch 'lenormf/patch-1' 2019-07-21 12:14:57 +10:00
Maxime Coste
27fce78eac Merge remote-tracking branch 'codesoap/ledger' 2019-07-21 12:08:42 +10:00
Gaeulbyul
bd257ceb7d css.kak: Highlight comment inside declaration 2019-07-18 01:33:57 +09:00
codesoap
0bd57817b3 Configure comment_line for the ledger filetype 2019-07-12 14:02:06 +02:00
David Ross
27ed20582f Add complete extra_word_chars for lisp
See https://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node27.html.
2019-07-06 12:25:46 -07:00
David Ross
e65740873d Treat '-' as an word character in lisp
'-' is part of identifiers in most or all lisps.

Strategy for implementing this copied from https://github.com/mawww/kakoune/blob/master/rc/filetype/scss.kak#L20.
2019-07-05 06:44:45 -07:00
codesoap
2d15c13c1e ledger.kak: Automatically indent postings in transactions 2019-07-02 09:49:52 +02:00
codesoap
710ebabcb8 Add ledger filetype 2019-07-01 20:49:55 +02:00
Frank LENORMAND
a735c06714
rc git: Fix the indentation of misaligned commands 2019-07-01 12:56:51 +00:00
Maxime Coste
5c219cc743 Merge remote-tracking branch 'sjjf/sh_indent_v2' 2019-07-01 22:00:31 +10:00
Maxime Coste
2e3e0c47bb Merge remote-tracking branch 'greenfork/fix-ruby-end-autoinsertion' 2019-06-30 10:30:40 +10:00
Simon Fowler
b2459f5ecb Remove the sh_auto_indent option.
We now auto indent by default, with the option to disable it handled by
the `diabled_hooks` mechanism.
2019-06-29 12:34:14 +10:00
codesoap
ca2741fe20 Rename ModuleLoad hook to ModuleLoaded
This clarifies, that the hook is run *after* the module is loaded.
2019-06-25 19:16:47 +02:00
Frank LENORMAND
e5b9761818 rc filetype d: Highlight quoted backticks properly
Fixes #2970
2019-06-24 10:18:43 +03:00
Frank LENORMAND
b5321f3d1b rc filetype d: Highlight line tokens properly 2019-06-24 10:12:29 +03:00
Maxime Coste
2422c2dcd1 Merge branch 'repl' of https://github.com/codesoap/kakoune 2019-06-23 12:05:15 +10:00
Maxime Coste
4b7b5d077c Make quoting opt-in by using $kak_quoted_... 2019-06-23 12:04:21 +10:00
Dmitry Matveyev
68cdfb9b9d Add more ending blocks for ruby "end" keyword autoinsertion 2019-06-21 13:55:14 +03:00
Simon Fowler
04005b06b0 Add support for basic auto-indenting of sh code.
This attempts to support a simple formatting and intentation style for
plain sh syntax (and other sh-compatible code which doesn't stray too
far from portable sh).

The complexity of sh syntax means that we have to be opinionated -
attempting to be more flexible would require extensive context
awareness, and would require something more akin to a proper
autoformatting tool or a language server.

The formatting style used here makes use of vertical whitespace as the
primary delimiter, so that code ends up looking like this:

if [ $foo = "bar" ]; then
        thing1
else
        thing2
fi

for i in foo bar baz; do
        thing1
        thing2
done

case "$foo" in
        bar) thing1;;
        baz)
                thing1
                thing2
                ;;
esac

Since the formatting style used is very opinionated the 'sh_auto_indent'
option can be used to disable auto-indentation, with the default set to
'no'.
2019-06-20 13:19:15 +10:00
Maxime Coste
59e43c8f0c Merge remote-tracking branch 'lePerdu/latex-indent' 2019-06-19 23:03:20 +10:00
Maxime Coste
64b6bfa8ba Merge remote-tracking branch 'dgmulf/awk' 2019-06-19 23:02:21 +10:00
Maxime Coste
27902fa05f Merge remote-tracking branch 'greenfork/add-dart-highlighting-for-private-classes' 2019-06-19 23:01:56 +10:00
Maxime Coste
791dafbc97 Merge branch 'master' of http://github.com/codesoap/kakoune 2019-06-19 23:01:11 +10:00
codesoap
df03a8850c Comment on the escape sequence for setting the terminal's title 2019-06-18 11:52:33 +02:00
codesoap
9d8fb8bc31 Print escape sequence to set the window title
Using xdotool was probably a little less portable, because it relied on
the newly created window to be activated by the window manager.
2019-06-18 11:41:59 +02:00
codesoap
feebad14b0 Set the REPL window title using xdotool
As mentioned in issue #2973, the -t argument for setting the terminal
title was not very portable.
2019-06-18 09:58:32 +02:00
Daniel Mulford
952f919214 Basic language support for Awk 2019-06-17 22:12:15 -07:00
Dmitry Matveyev
aaa078f7c3 Add Dart highliting for private classes 2019-06-17 22:11:19 +03:00
Dmitry Matveyev
bd22b28d39 Fix Dart highlighting of annotations 2019-06-16 11:53:19 +03:00
Maxime Coste
9d52822702 Merge remote-tracking branch 'greenfork/ruby-do-keyword-support' 2019-06-15 10:55:44 +10:00
Maxime Coste
d801c18a54 Merge remote-tracking branch 'alexherbo2/crystal' 2019-06-15 10:52:59 +10:00
Maxime Coste
f4f361e212 Merge remote-tracking branch 'ath3/editorconfig-max_line_length' 2019-06-15 10:51:54 +10:00
codesoap
38d3432d1a Make the readtags command configurable in ctags.kak
On OpenBSD the command that comes with the universal-ctags package is
called 'ureadtags'.
2019-06-14 13:21:33 +02:00
ath3
8c7d447574 max_line_length support for editorconfig 2019-06-13 00:03:45 +02:00
Dmitry Matveyev
01159a9e72 Add support for autoformatting after do keyword in Ruby 2019-06-12 09:03:24 +03:00
Alex Leferry 2
d97688b624 Update Crystal 2019-06-11 18:33:08 +02:00
Maxime Coste
85e2dc6252 Merge branch 'man' of http://github.com/codesoap/kakoune 2019-06-11 23:19:52 +10:00
Maxime Coste
a93f54192e Merge branch 'st' of http://github.com/codesoap/kakoune 2019-06-11 23:19:10 +10:00
Maxime Coste
8023c1d094 Merge branch 'patch-1' of http://github.com/hacktivista/kakoune 2019-06-11 23:08:54 +10:00
Maxime Coste
a16cae2daf Fix ctags-search menu escaping 2019-06-11 20:13:03 +10:00
codesoap
683c7c1fa5 Fix fifos for Linux
Those were accidentaly broken while fixing for OpenBSD.
2019-06-10 18:25:51 +02:00
Felix Freeman
f246313951 Consider */ closing comment on PHP automatic indentation prefix 2019-06-10 12:12:06 -04:00
codesoap
9ca9d40c03 Revert "Don't create subshells when unnecessary"
This reverts commit 6c05e6e0f8.
Apparently the Linux sh needs subshells here.
2019-06-10 18:00:11 +02:00
hacktivista
2bc14edfd2 Fix PHP comments indentation 2019-06-10 10:47:19 -04:00
codesoap
6c05e6e0f8 Don't create subshells when unnecessary 2019-06-09 13:24:30 +02:00
codesoap
009eb80ca0 Fix tools using fifos for OpenBSD
Without these changes, kak would hang on the corresponding commands,
displaying a 'waiting for shell command to finish' message.
2019-06-09 11:50:35 +02:00
codesoap
11dfd4994b Escape '(' in shell parameter expansion in man.kak
Not escaping '(' here led to a 'no closing quote' error on OpenBSD.
2019-06-07 21:48:28 +02:00
codesoap
7ade105319 Add st (simple terminal) to the known terminals 2019-06-07 21:46:20 +02:00
Maxime Coste
09e1ec97a9 Merge remote-tracking branch 'alexherbo2/crystal' 2019-06-06 23:14:51 +10:00
Maxime Coste
ecf3853bde Merge remote-tracking branch 'alexherbo2/r-rename' 2019-06-06 23:14:44 +10:00
codesoap
10ad877a4d Remove extraneous '\' from git.kak 2019-06-06 13:17:21 +02:00
Maxime Coste
733cf564df Merge remote-tracking branch 'elasticdog/spell-len-whitespace' 2019-06-06 20:17:08 +10:00
Alex Leferry 2
cd0665d61b Update Crystal 2019-06-05 17:34:18 +02:00
codesoap
7c8c5ad506 Remove ' from comment in subshell
On OpenBSD's sh this causes a "no closing quote" error.
2019-06-05 15:16:07 +02:00
Alex Leferry 2
39e2604420 Rename R.kak → r.kak 2019-06-04 13:56:08 +02:00
Aaron Bull Schaefer
3a401f0771 Trim whitespace from spell check word length variable
Due to ambiguity in the POSIX standard, GNU and BSD versions of the `wc`
utility use slightly different whitespace conventions when formatting
their output [1]. When limiting the output to just counting the number
of bytes (as is done by Kakoune when calculating the length of words
for spell check highlighting), the BSD version of `wc -c` has some
additional leading whitespace:

    gnu$ printf %s "test" | wc -c
    4
    bsd$ printf %s "test" | wc -c
           4

This leading whitespace needs to be removed before defining the "region"
to highlight, or `set-option` will not be able to parse the given
`spell_regions` and will complain that there are "not enough elements
in tuple." In other words, the region `1.21+8|Error` on Linux ends up
looking like `1.21+       8|Error` on macOS, which is invalid.

Removing the whitespace could be accomplished in a number of ways, but
using arithmetic expansion [2] is POSIX compliant and does not require
shelling out to another process.

[1]: https://unix.stackexchange.com/questions/205906/extra-space-with-counted-line-number
[2]: https://mywiki.wooledge.org/ArithmeticExpression
2019-06-02 20:23:42 -07:00
lePerdu
dbe32d314f Add auto-indent scripts for LaTeX 2019-05-31 11:44:15 -04:00
Semyon Maryasin
accc203718
Add syntax highlighting for Nix package manager
Based on PHP. It is not ideal yet but much better than nothing.
2019-05-29 21:13:33 +03:00