Commit Graph

201 Commits

Author SHA1 Message Date
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
Delapouite
a932b6b21e Add error message when using format command with no formatcmd specified 2017-06-26 22:10:04 +02:00
Maxime Coste
f41d78083a Use the extra_word_chars option in word based normal commands
the completion_extra_word_chars is now gone, superseeded by
extra_word_chars that gets used both for completion and for normal mode.

Fixes #1304
2017-06-26 15:28:41 +01:00
Frank LENORMAND
6376aa6206 rc formatter: Make sure the formatter returned successfully
The previous implementation used to replace the contents of the buffer with
whatever the `formatcmd` was returning, regardless of the exit code of the
command, which led to the buffer being wiped out on error.

This commit does the formatting in a temporary file, and only replaces the
current buffer with the contents of the -formatted- temporary file if the
`formatcmd` returned successfully.

Fixes #1357
2017-06-23 15:12:23 +03:00
Alex Leferry 2
585778057f Update command names 2017-06-16 13:53:03 +02:00
Frank LENORMAND
cb9a2e562b rc: Fix calls to mktemp
The GNU and BSD implementations differ on several points, this commit
hopefully finds a middle ground.
2017-06-16 11:51:46 +03:00
Maxime Coste
e73cd78288 Fix corner case in C family indenting 2017-06-13 10:19:38 +01:00
Frank LENORMAND
813d09a101 rc: Fix calls to mktemp
Allow `mktemp` to make use of the `TMPDIR` environment variable when
calling it with a template.

Don't use the deprecated `-t` flag.
2017-06-09 14:30:54 +03:00
Maxime Coste
81118552c8 Fix missing hook removal command in c-family.kak 2017-06-07 12:44:00 +01:00
Frank LENORMAND
8794687f36 Revert "doc: Fix the documentation of the alt_dirs option"
This reverts commit ef88b28392.
2017-06-04 11:24:10 +03:00
Frank LENORMAND
ef88b28392 doc: Fix the documentation of the alt_dirs option 2017-06-03 21:49:10 +03:00
Maxime Coste
d8a90ad5d3 Merge remote-tracking branch 'danr/Remove-ad-hoc-rules-in-kakrc-highlighter' 2017-06-03 15:16:49 +01:00
Maxime Coste
f3f6ac9e8a Merge remote-tracking branch 'danr/Improve-kakrc-highlighter-with-more-static-words' 2017-06-03 15:16:14 +01:00
Maxime Coste
9d71be769b Rename _grep_current_line option to grep_current_line 2017-06-03 14:04:06 +01:00
Maxime Coste
d8cc50ed79 man.kak: Rename _manpage option to manpage 2017-05-27 07:40:47 +01:00
Maxime Coste
ad154e7bb7 Highlight non numeric man sections as well in man.kak 2017-05-27 07:34:35 +01:00
Maxime Coste
0b592c5641 Slight style tweak in doc.kak 2017-05-27 06:14:01 +01:00
Maxime Coste
ca38e10314 Make shell variable expansion in "strings" highlighted the same way as in code 2017-05-25 19:54:08 +01:00
Maxime Coste
a84d7cf06b Add break and continue to the list of sh keywords 2017-05-25 19:54:08 +01:00
Maxime Coste
3e4e4f6210 Add support for raw C++ strings in c-family highlighting 2017-05-25 06:51:39 +01:00
Maxime Coste
a0e63fbe93 Fix man.kak when man pages filenames just end up with the manual section 2017-05-23 13:59:31 +01:00
Maxime Coste
2f9b77b748 Smarter align to opening parenthesis/brace supporting multiline 2017-05-21 22:31:05 +01:00
Maxime Coste
c6508ee101 Merge remote-tracking branch 'lenormf/doc-public-options' 2017-05-21 07:09:37 +01:00
Maxime Coste
e43e44f9cc Commit correct version of c-family indent change 2017-05-21 07:08:20 +01:00
Maxime Coste
cab0adaa53 Support aligning to opening { as well as ( in c-family indent 2017-05-20 11:08:13 +01:00
Maxime Coste
55d1d1020d Merge remote-tracking branch 'lenormf/rc-misc-fixes' 2017-05-19 21:53:02 +01:00
Frank LENORMAND
d59bafa2c1 rc: Simplify and optimize the alt command 2017-05-16 18:20:19 +03:00
Frank LENORMAND
b9cdccd53a rc: Document non-hidden options with -docstring 2017-05-16 14:35:43 +03:00
Dan Rosén
4f7f7edea0 Add some missing languages to comment.kak 2017-05-16 09:21:30 +02:00
Dan Rosén
5f97117ab4 Remove ad-hoc rules in kakrc highlighter
These are less useful with more static words, and they are
woefully incomplete: no support -docstring for map, set
uses the variable face, but there is no corresponding
highlighter for decl or %opt{..}.
2017-05-15 21:58:57 +02:00
Dan Rosén
1e4958353a Improve kakrc highlighter with more static words 2017-05-15 21:58:57 +02:00
Maxime Coste
edc2a88643 Rename BufNew and BufOpen hooks to BufNewFile and BufOpenFile
Fixes #1225
2017-02-19 13:08:06 +00:00
Maxime Coste
14fa89e642 Merge remote-tracking branch 'lenormf/fix-doc-ansi-sequences' 2017-02-13 20:27:38 +00:00
Maxime Coste
f7d794d047 Merge remote-tracking branch 'nicholastmosher/faces' 2017-02-13 20:25:41 +00:00
Maxime Coste
5b1229709d Fix make.kak handling of 'Entering directory' and absolute paths
Fixes #1212
2017-02-13 13:52:51 +00:00
Frank LENORMAND
0532251aaf Make sure no ANSI sequences are in the data returned by man
The Debian implementation of `man-db` does not strip ANSI sequences out
of the file, even though the documentation says it would do so. The
commit that originally closed this issue wasn't related to the problem
experienced, this one hopefully addresses it.

This commit also addresses an issue with the `-i` flag in BSD `sed`
which expects an argument (the GNU implementation doesn't).

Fixes #1098
2017-02-10 13:30:06 +03:00
Nick Mosher
e1927fa9c4 Adds faces module and function. Renames identifier face to variable. 2017-02-09 21:43:29 -05:00
Maxime Coste
033ded15ae Add proper heredoc highlighting support to sh.kak 2017-02-06 23:00:20 +00:00
Maxime Coste
99b7d83ca3 Highlight c-family include paths as identifiers 2017-02-03 13:35:45 +00:00
Maxime Coste
e2d24701fa Merge remote-tracking branch '4d47/php-comments' 2017-01-29 14:43:59 +00:00
Mathieu Gagnon
97d99358d1 Set commenting options for php
The defaults are working but using c-family style is more idiomatic,
it also enable support for `comment-selection`.
2017-01-29 06:23:11 -05:00
Maxime Coste
1048036d3c Merge remote-tracking branch 'alexherbo2/rc-comment' 2017-01-25 21:18:48 +00:00
Maxime Coste
d3ecc9f311 More tolerant recognition of underlined titles in asciidoc highlight 2017-01-25 00:24:41 +00:00
Alex Leferry 2
4f3c28aa37 fix quote convention 2017-01-15 15:12:57 +01:00
Alex Leferry 2
b66d58b703 remove optional value 2017-01-15 15:07:17 +01:00
Alex Leferry 2
d6cb1b8e53 fix typo 2017-01-15 15:05:01 +01:00
Alex Leferry 2
165227dac2 rename line and block comments options 2017-01-15 14:58:07 +01:00
Alex Leferry 2
98cc81ae07 rename :comment-selection to :comment-block 2017-01-15 14:48:12 +01:00
Alex Leferry 2
1f0ec535bd tweak :comment-line behaviour to comment selected lines 2017-01-15 14:43:45 +01:00
Alex Leferry 2
4ad4b2d41a rename commenting.kak to comment.kak 2017-01-15 14:25:32 +01:00
Maxime Coste
c0afbe8626 Remove MAN_KEEP_FORMATTING for doc.kak
Fixes #1098
2017-01-15 11:26:57 +00:00
Maxime Coste
5ad4499503 Fix naming conventions in bundled scripts
Do not use _ prefix for hidden commands, use - as a word separator
in command names.
2017-01-13 01:00:43 +00:00
Maxime Coste
91a56c11fe Various auto indent fixes regarding wrong use of x instead of <a-x> 2017-01-13 00:50:03 +00:00
Maxime Coste
5989903e7c Copy comments *before* copying indentation
Fixes #1118
2017-01-11 13:56:48 +00:00
Maxime Coste
4cfa4062bc Add '-' as completion extra word character for kakrc files 2017-01-10 13:48:04 +00:00
Maxime Coste
343df600cb Merge remote-tracking branch 'alexherbo2/command-names' 2017-01-10 13:44:11 +00:00
Maxime Coste
a8fb280b6d make.kak: highlight gcc/clang style location markers 2017-01-06 17:05:39 +00:00
Alex Leferry 2
671b50bb52 update command names 2017-01-04 13:04:27 +01:00
Alex Leferry 2
8f821f0fba update kakrc keywords 2017-01-04 00:30:50 +01:00
Maxime Coste
c3e1bab9d6 Fix comment autoinsert for c-family as well.
Fixes #1074
2017-01-02 12:05:49 +00:00
Maxime Coste
4901a02e50 Add indentation hooks to kak filetype support script 2017-01-02 04:33:42 +00:00
Maxime Coste
5ab60cde51 Rename python indentation command to be more consistent
We use `-` as word separator, and there is no need for leading
underscore.
2017-01-02 04:20:05 +00:00
Maxime Coste
d5231c713e Fix corner case in C indentation 2017-01-02 04:15:12 +00:00
Leira Hua
6cbc9e0a34 Fixes #995 Documentation rendering problem
BSD sed doesn't accept ascii number with '\x', used printf to generate
\x8 as @lenormf suggested.
2016-12-20 02:31:55 -08:00
Maxime Coste
1bdf26fd6e Merge remote-tracking branch 'casimir/remove-mimetype' 2016-12-14 13:30:59 +00:00
Maxime Coste
8e351e8285 Remove use of non-standard -l option in doc.kak
This will break BSD unfortunately, we should try to find a
portable fix for that.

Fixes #967
2016-12-14 01:02:53 +00:00
Maxime Coste
066d6d1120 Do not use find -printf in doc completion implementation 2016-12-14 00:59:19 +00:00
Maxime Coste
53e9496343 Remove the 'h' alias for doc, just provide 'help' 2016-12-14 00:08:23 +00:00
Noé Rubinstein
93620a76f0 doc.kak: add aliases for :h and :help
This would help VIM users find the documentation
2016-12-13 19:28:23 +01:00
Maxime Coste
0f486666e0 Remove underscore prefix from indent command in c-family.kak
We already define these commands as hidden, this underscore has
little value.
2016-12-09 13:51:44 +00:00
Maxime Coste
d8f00198f3 Improve C indentation support around namespace/struct closing bracket 2016-12-09 13:50:41 +00:00
Maxime Coste
ca225ad4dc Cleanup make.kak and optimize the make-next/make-prev regexes 2016-12-09 13:33:01 +00:00
Maxime Coste
5caa969947 Merge branch 'make/error-pattern' of git://github.com/pauldub/kakoune 2016-12-08 23:02:11 +00:00
Paul d'Hubert
010453a2ac Update make.rc error pattern matching
- Use the classic unix file:line:(col:)? pattern for matching.
- The option `make_error_pattern` can be used to further restrict errors
to be matched (to include / exclude warnings, etc.
2016-12-08 11:33:28 +01:00
Martin Chaine
5b95e537ba don't reset line chars for python 2016-12-08 11:18:16 +01:00
Martin Chaine
3227fa7b57 Fix python comment chars 2016-12-08 11:07:25 +01:00
Paul d'Hubert
c54a8ef987 Allow setting custom make error pattern
The current pattern used by the commands `make-next` and `make-prev`
are not suitable for all usages.

For example the go compiler will not suffix errors with `error: ` and is
not usable with these functions. This change allows the user to define
a custom error pattern, instead of having to work around the error (for
example using sed to insert the `error: ` suffix).

What do you think of this? I have not followed the current convention
of having options without separators (like `makecmd`). Also this does
not feel to be the right solution because the pattern has to be set at
global level.
2016-12-08 11:01:05 +01:00
Martin Chaine
b64bcf7b3e better filetype detection
http://asciidoctor.org/docs/asciidoc-recommended-practices/#document-extension
2016-12-06 17:49:30 +01:00
Martin Chaine
7384288e07 transform mimetype to a fallback option
The option is now used as a fallback when detection by extension fails. Some
scripts like `base/mail.kak` and `base/html.kak` still rely heavily on it.
2016-12-06 17:48:46 +01:00
Maxime Coste
168abcdb48 Fix c-family.kak after the change to keep handling of eol 2016-11-29 00:01:37 +00:00
Maxime Coste
97a84a4765 c-family.kak: rename gcc_macros to builtin_macros 2016-11-27 23:38:47 +00:00
Frank LENORMAND
94971e0e8a Introduce the builtin face, modify scripts accordingly 2016-11-24 17:06:45 +03:00
Maxime Coste
90de54af2f Rework c-family /* */ comments auto insertion of prefix star
Fixes #918
2016-11-14 21:11:20 +00:00
Maxime Coste
dcd733e5fa Do a first phase of command renaming 2016-11-14 00:27:14 +00:00
Frank LENORMAND
85ce5db08a Merge the "error" duplicate face into "Error" 2016-11-09 17:51:42 +03:00
Maxime Coste
fff129f15b Merge remote-tracking branch 'lenormf/fix-sh-highlighting' 2016-11-08 20:20:45 +00:00
Frank LENORMAND
aca984f000 Highlight variable expansions as values in shell scripts 2016-11-08 19:03:41 +03:00
Frank LENORMAND
277117f64b Fix the doc command for users of BSD man
This commit uses options and flags that will work on both the BSD and
the `man-db` implementations, however those changes remain unportable as
the POSIX standard only defines a single `-k` flag for the utility,
which we don't need.

The call to the `col` utility has also been replaced by a call to `sed`,
as the former is only shipped on systems that have the `nroff` formatter
installed.
2016-11-03 14:57:55 +03:00
Maxime Coste
01dba547fb Tweak c-family indentation logic 2016-11-02 22:27:50 +00:00
Maxime Coste
cf5bcdf1bb Merge remote-tracking branch 'lenormf/fix-formatcmd' 2016-10-17 18:28:57 +01:00
Maxime Coste
1431dcff46 Fix bug in c-family indentation logic after visibility labels
Fixes #872
2016-10-16 19:27:53 +01:00
Frank LENORMAND
ac42ea414e Add commenting characters to all supported languages
The default commenting character is now '#', considering the superior
amount of files that use it for comments compared to the previous
C-style comment characters.

The logic now also prioritize the opening commenting characters if they
contain a colon, to be able to use selection commenting on markdown
files.
2016-10-15 11:07:21 +03:00
Frank LENORMAND
68d3eda270 Miscellaneous fixes to the commenting.kak script
This commit properly produces backslash characters within double quote
strings instead of hoping the shell will not recognize the escape
sequence that they form with the following character. Use the proper
POSIX function declaration form.

The uncommenting logic now also ignores trailing newline characters,
which shortens the amount of operations needed to uncomment a selection.
2016-10-14 22:15:35 +03:00
Frank LENORMAND
5db1d1beef Move the commenting variables back to commenting.kak
Initialising the `comment_line_chars` and `comment_selection_chars` variables
in language support scripts created a hard dependency of those scripts
to `commenting.kak`, which would create errors when this script was not
loaded, e.g. when running tests.
2016-10-14 22:12:01 +03:00
Frank LENORMAND
67a8e8ca3c Remove all references to formatcmd
Initializing the `formatcmd` variable in the default language support
scripts created a dependency to the `formatter.kak` script, which we do
not want. Examples of such cases are when users haven't loaded the
`formatter.kak` script, or when Kakoune runs its test suite and
selectively loads some language scripts for testing purposes.
2016-10-14 19:16:45 +03:00
Maxime Coste
5af29b0254 Fix python comment copy logic in python.kak
And introduce the first unit test that sources bundled support
scripts.

Fixes #860
2016-10-13 20:13:05 +01:00
Frank LENORMAND
f6a2925950 Fix, complete and add docstring documentation to builtin commands
Level out the builtin commands loaded at startup in terms of format and
expressiveness. The following convention was followed:
* commands that take more than one argument have to be described along
  with their parameters prior to the actual documentation, otherwise the
  docstring consists in a capitalized sentence
  e.g. `command <arg1>: do something`
* optional arguments are enclosed in square brackets, to comply with the
  format used for hardcoded commands
  e.g. `cd [<directory>]`
* describe the effects of the command in the documentation string and
  omit implementation details unless they are relevant. Usually command
  names include the name of the tool they use, so they don't need to be
  redundantly mentioned
  e.g. `tmux-new-pane <arguments>: open a new pane`
* document the format the parameters to the commands, or list them if
  they are to be chosen among a list of static values (c.f. `spell.kak`)
2016-10-11 10:26:17 +03:00