summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2016-10-17 18:28:57 +0100
committerMaxime Coste <frrrwww@gmail.com>2016-10-17 18:28:57 +0100
commitcf5bcdf1bb6853c2b1e75600ed43bc303e75f774 (patch)
treebd48e607cbb01c8612a2b2c64477a0989155ce9e
parent1431dcff462bb7fc988be099b68070b43495b101 (diff)
parent617a5b72e25e7f60ce05ef095c8b3675029c5246 (diff)
Merge remote-tracking branch 'lenormf/fix-formatcmd'
-rw-r--r--rc/base/css.kak2
-rw-r--r--rc/base/d.kak3
-rw-r--r--rc/base/go.kak2
-rw-r--r--rc/base/html.kak2
-rw-r--r--rc/base/lua.kak5
-rw-r--r--rc/base/perl.kak4
-rw-r--r--rc/base/ruby.kak10
-rw-r--r--rc/core/c-family.kak2
-rw-r--r--rc/core/commenting.kak139
-rw-r--r--rc/core/makefile.kak3
-rw-r--r--rc/core/python.kak2
-rw-r--r--rc/extra/coffee.kak5
-rw-r--r--rc/extra/latex.kak4
-rw-r--r--rc/extra/moon.kak5
-rw-r--r--test/regression/860-python-incorrect-commenting/rc1
15 files changed, 113 insertions, 76 deletions
diff --git a/rc/base/css.kak b/rc/base/css.kak
index 8ebc6a8a..06c483aa 100644
--- a/rc/base/css.kak
+++ b/rc/base/css.kak
@@ -72,8 +72,6 @@ hook global WinSetOption filetype=css %[
hook window InsertEnd .* -group css-hooks _css_filter_around_selections
hook window InsertChar \n -group css-indent _css_indent_on_new_line
hook window InsertChar \} -group css-indent _css_indent_on_closing_curly_brace
-
- set comment_line_chars ""
]
hook -group css-highlight global WinSetOption filetype=(?!css).* %{ rmhl css }
diff --git a/rc/base/d.kak b/rc/base/d.kak
index a080a776..52dfd539 100644
--- a/rc/base/d.kak
+++ b/rc/base/d.kak
@@ -110,9 +110,6 @@ hook global WinSetOption filetype=d %{
hook window InsertChar \n -group d-indent _d-indent-on-new-line
hook window InsertChar \{ -group d-indent _d-indent-on-opening-curly-brace
hook window InsertChar \} -group d-indent _d-indent-on-closing-curly-brace
-
- set window formatcmd "dfmt"
- set window comment_selection_chars "/+:+/"
}
hook -group d-highlight global WinSetOption filetype=(?!d).* %{ rmhl d }
diff --git a/rc/base/go.kak b/rc/base/go.kak
index bbb83092..c4b20791 100644
--- a/rc/base/go.kak
+++ b/rc/base/go.kak
@@ -92,8 +92,6 @@ hook global WinSetOption filetype=go %{
hook window InsertChar \n -group go-indent _go-indent-on-new-line
hook window InsertChar \{ -group go-indent _go-indent-on-opening-curly-brace
hook window InsertChar \} -group go-indent _go-indent-on-closing-curly-brace
-
- set window formatcmd "gofmt"
}
hook -group go-highlight global WinSetOption filetype=(?!go).* %{ rmhl go }
diff --git a/rc/base/html.kak b/rc/base/html.kak
index bbb2d5ec..066a01a2 100644
--- a/rc/base/html.kak
+++ b/rc/base/html.kak
@@ -69,8 +69,6 @@ hook global WinSetOption filetype=html %{
hook window InsertEnd .* -group html-hooks _html_filter_around_selections
hook window InsertChar .* -group html-indent _html_indent_on_char
hook window InsertChar \n -group html-indent _html_indent_on_new_line
-
- set window comment_selection_chars '<!--:-->'
}
hook -group html-highlight global WinSetOption filetype=(?!html).* %{ rmhl html }
diff --git a/rc/base/lua.kak b/rc/base/lua.kak
index 73c058ba..609f5036 100644
--- a/rc/base/lua.kak
+++ b/rc/base/lua.kak
@@ -1,8 +1,6 @@
# http://lua.org
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾
-# require commenting.kak
-
# Detection
# ‾‾‾‾‾‾‾‾‾
@@ -103,9 +101,6 @@ hook global WinSetOption filetype=lua %{
hook window InsertChar \n -group lua-indent _lua_indent_on_new_line
alias window alt lua-alternative-file
-
- set window comment_line_chars '--'
- set window comment_selection_chars '\Q--[[:]]'
}
hook -group lua-highlight global WinSetOption filetype=(?!lua).* %{ rmhl lua }
diff --git a/rc/base/perl.kak b/rc/base/perl.kak
index 086ec4e4..d4c30695 100644
--- a/rc/base/perl.kak
+++ b/rc/base/perl.kak
@@ -117,10 +117,6 @@ hook global WinSetOption filetype=perl %{
hook window InsertChar \n -group perl-indent _perl-indent-on-new-line
hook window InsertChar \{ -group perl-indent _perl-indent-on-opening-curly-brace
hook window InsertChar \} -group perl-indent _perl-indent-on-closing-curly-brace
-
- set window formatcmd "perltidy"
- set window comment_selection_chars ""
- set window comment_line_chars "#"
}
hook -group perl-highlight global WinSetOption filetype=(?!perl).* %{ rmhl perl }
diff --git a/rc/base/ruby.kak b/rc/base/ruby.kak
index a4e8b181..185db608 100644
--- a/rc/base/ruby.kak
+++ b/rc/base/ruby.kak
@@ -1,8 +1,6 @@
# http://ruby-lang.org
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
-# require commenting.kak
-
# Detection
# ‾‾‾‾‾‾‾‾‾
@@ -158,14 +156,6 @@ hook global WinSetOption filetype=ruby %{
hook window InsertChar \n -group ruby-insert _ruby_insert_on_new_line
alias window alt ruby-alternative-file
-
- set window comment_line_chars '#'
- set window comment_selection_chars '^begin=:^=end'
-
- # Rubocop requires a filepath that will be used when generating the errors summary,
- # even though it's reading anonymous data on stdin
- # It also leaves an ugly separator on the first line on the output
- set window formatcmd 'rubocop --auto-correct --stdin - -o /dev/null | sed 1d'
}
hook -group ruby-highlight global WinSetOption filetype=(?!ruby).* %{ rmhl ruby }
diff --git a/rc/core/c-family.kak b/rc/core/c-family.kak
index 4924edd6..13daf3c5 100644
--- a/rc/core/c-family.kak
+++ b/rc/core/c-family.kak
@@ -240,8 +240,6 @@ hook global WinSetOption filetype=(c|cpp|objc) %[
hook -group c-family-insert window InsertChar \n _c-family-insert-on-newline
alias window alt c-family-alternative-file
-
- set window formatcmd "astyle"
]
hook global WinSetOption filetype=(?!(c|cpp|objc)$).* %[
diff --git a/rc/core/commenting.kak b/rc/core/commenting.kak
index 8cec5de7..151502ef 100644
--- a/rc/core/commenting.kak
+++ b/rc/core/commenting.kak
@@ -1,17 +1,103 @@
+## Characters that will be inserted at the beginning of a line to comment
+decl str comment_line_chars "#"
+
## Characters that will be used to surround a selection with
-decl str-list comment_selection_chars "/*:*/"
+decl str-list comment_selection_chars ""
-## Characters that will be inserted at the beginning of a line to comment
-decl str comment_line_chars "//"
+## Default characters for all languages
+hook global BufSetOption filetype=asciidoc %{
+ set buffer comment_selection_chars '///:///'
+}
+
+hook global BufSetOption filetype=(c|cpp|go|java|javascript|objc|sass|scala|scss|swift) %{
+ set buffer comment_line_chars '//'
+ set buffer comment_selection_chars '/*:*/'
+}
+
+hook global BufSetOption filetype=(cabal|haskell|moon) %{
+ set buffer comment_line_chars '--'
+}
+
+hook global BufSetOption filetype=clojure %{
+ set buffer comment_line_chars '#_ '
+ set buffer comment_selection_chars '(comment :)'
+}
+
+hook global BufSetOption filetype=coffee %{
+ set buffer comment_selection_chars '###:###'
+}
+
+hook global BufSetOption filetype=css %{
+ set buffer comment_line_chars ''
+ set buffer comment_selection_chars '/*:*/'
+}
+
+hook global BufSetOption filetype=d %{
+ set buffer comment_line_chars '//'
+ set buffer comment_selection_chars '/+:+/'
+}
+
+hook global BufSetOption filetype=(gas|ini) %{
+ set buffer comment_line_chars ';'
+}
+
+hook global BufSetOption filetype=haml %{
+ set buffer comment_line_chars '-#'
+}
+
+hook global BufSetOption filetype=html %{
+ set buffer comment_line_chars ''
+ set buffer comment_selection_chars '<!--:-->'
+}
+
+hook global BufSetOption filetype=latex %{
+ set buffer comment_line_chars '%'
+}
+
+hook global BufSetOption filetype=lisp %{
+ set buffer comment_line_chars ';'
+ set buffer comment_selection_chars '#|:|#'
+}
+
+hook global BufSetOption filetype=lua %{
+ set buffer comment_line_chars '--'
+ set buffer comment_selection_chars '--[[:]]'
+}
+
+hook global BufSetOption filetype=markdown %{
+ set buffer comment_line_chars ''
+ set buffer comment_selection_chars '[//]: # (:)'
+}
+
+hook global BufSetOption filetype=perl %{
+ set buffer comment_selection_chars '#[:]'
+}
+
+hook global BufSetOption filetype=(pug|rust) %{
+ set buffer comment_line_chars '//'
+}
+
+hook global BufSetOption filetype=python %{
+ set buffer comment_selection_chars '""":"""'
+}
+
+hook global BufSetOption filetype=ragel %{
+ set buffer comment_line_chars '%%'
+ set buffer comment_selection_chars '%%{:}%%'
+}
+
+hook global BufSetOption filetype=ruby %{
+ set buffer comment_selection_chars '^begin=:^=end'
+}
def comment-selection -docstring "Comment/uncomment the current selection" %{
%sh{
- function exec_proof {
+ exec_proof() {
## Replace the '<' sign that is interpreted differently in `exec`
printf %s\\n "$@" | sed 's,<,<lt>,g'
}
- readonly opening=$(exec_proof "${kak_opt_comment_selection_chars%%:*}")
+ readonly opening=$(exec_proof "${kak_opt_comment_selection_chars%:*}")
readonly closing=$(exec_proof "${kak_opt_comment_selection_chars##*:}")
if [ -z "${opening}" ] || [ -z "${closing}" ]; then
@@ -19,51 +105,52 @@ def comment-selection -docstring "Comment/uncomment the current selection" %{
exit
fi
- printf %s\\n "try %{
+ printf %s\\n "eval -draft %{ try %{
## The selection is empty
- exec -draft %{<a-K>\A[\h\v\n]*\z<ret>}
+ exec <a-K>\\A[\\h\\v\\n]*\\z<ret>
try %{
## The selection has already been commented
- exec -draft %{<a-K>\A\Q${opening}\E.*\Q${closing}\E\z<ret>}
+ exec %{<a-K>\\A\\Q${opening}\\E.*\\Q${closing}\\E\\n*\\z<ret>}
## Comment the selection
- exec %{a${closing}<esc>i${opening}<esc>${#opening}H}
+ exec -draft %{a${closing}<esc>i${opening}}
} catch %{
## Uncomment the commented selection
- exec -draft %{s(\A\Q${opening}\E)|(\Q${closing}\E\z)<ret>d}
+ exec -draft %{s(\\A\\Q${opening}\\E)|(\\Q${closing}\\E\\n*\\z)<ret>d}
}
- }"
+ } }"
}
}
def comment-line -docstring "Comment/uncomment the current line" %{
%sh{
readonly opening="${kak_opt_comment_line_chars}"
- readonly opening_escaped="\Q${opening}\E"
+ readonly opening_escaped="\\Q${opening}\\E"
if [ -z "${opening}" ]; then
echo "echo -debug 'The \`comment_line_chars\` variable is empty, could not comment the line'"
exit
fi
- printf %s\\n "
- ## Select the content of the line, without indentation
- exec %{I<esc><a-l>}
-
- try %{
- ## There's no text on the line
- exec -draft %{<a-K>\A[\h\v\n]*\z<ret>}
+ printf %s\\n "eval -draft %{
+ ## Select the content of the line, without indentation
+ exec I<esc><a-l>
try %{
- ## The line has already been commented
- exec -draft %{<a-K>\A${opening_escaped}<ret>}
+ ## There's no text on the line
+ exec <a-K>\\A[\\h\\v\\n]*\\z<ret>
- ## Comment the line
- exec %{i${opening}<esc>${#opening}H}
- } catch %{
- ## Uncomment the line
- exec -draft %{s\A${opening_escaped}\h*<ret>d}
+ try %{
+ ## The line has already been commented
+ exec %{<a-K>\\A${opening_escaped}<ret>}
+
+ ## Comment the line
+ exec -draft %{i${opening}}
+ } catch %{
+ ## Uncomment the line
+ exec -draft %{s\\A${opening_escaped}\\h*<ret>d}
+ }
}
}"
}
diff --git a/rc/core/makefile.kak b/rc/core/makefile.kak
index f60bec10..7b06eef7 100644
--- a/rc/core/makefile.kak
+++ b/rc/core/makefile.kak
@@ -58,9 +58,6 @@ hook -group makefile-highlight global WinSetOption filetype=makefile %{ addhl re
hook global WinSetOption filetype=makefile %{
hook window InsertChar \n -group makefile-indent _makefile-indent-on-new-line
-
- set window comment_selection_chars ""
- set window comment_line_chars "#"
}
hook -group makefile-highlight global WinSetOption filetype=(?!makefile).* %{ rmhl makefile }
diff --git a/rc/core/python.kak b/rc/core/python.kak
index 69da651a..42d9d449 100644
--- a/rc/core/python.kak
+++ b/rc/core/python.kak
@@ -75,8 +75,6 @@ hook global WinSetOption filetype=python %{
hook window InsertChar \n -group python-indent _python_indent_on_new_line
# cleanup trailing whitespaces on current line insert end
hook window InsertEnd .* -group python-indent %{ try %{ exec -draft \; <a-x> s ^\h+$ <ret> d } }
-
- set window formatcmd "autopep8 -"
}
hook -group python-highlight global WinSetOption filetype=(?!python).* %{ rmhl python }
diff --git a/rc/extra/coffee.kak b/rc/extra/coffee.kak
index 21f5f5ed..3090e365 100644
--- a/rc/extra/coffee.kak
+++ b/rc/extra/coffee.kak
@@ -1,8 +1,6 @@
# http://coffeescript.org
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
-# require commenting.kak
-
# Detection
# ‾‾‾‾‾‾‾‾‾
@@ -80,9 +78,6 @@ hook -group coffee-highlight global WinSetOption filetype=coffee %{ addhl ref co
hook global WinSetOption filetype=coffee %{
hook window InsertEnd .* -group coffee-hooks _coffee_filter_around_selections
hook window InsertChar \n -group coffee-indent _coffee_indent_on_new_line
-
- set window comment_line_chars '#'
- set window comment_selection_chars '###:###'
}
hook -group coffee-highlight global WinSetOption filetype=(?!coffee).* %{ rmhl coffee }
diff --git a/rc/extra/latex.kak b/rc/extra/latex.kak
index 86889365..ea6e22ed 100644
--- a/rc/extra/latex.kak
+++ b/rc/extra/latex.kak
@@ -35,8 +35,4 @@ addhl -group /latex/content regex '\\textbf\{([^}]+)\}' 1:default+b
hook -group latex-highlight global WinSetOption filetype=latex %{ addhl ref latex }
-hook global WinSetOption filetype=latex %{
- set window comment_line_chars '%'
-}
-
hook -group latex-highlight global WinSetOption filetype=(?!latex).* %{ rmhl latex }
diff --git a/rc/extra/moon.kak b/rc/extra/moon.kak
index 191ef3cb..e5f790f3 100644
--- a/rc/extra/moon.kak
+++ b/rc/extra/moon.kak
@@ -1,8 +1,6 @@
# http://moonscript.org
# ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
-# require commenting.kak
-
# Detection
# ‾‾‾‾‾‾‾‾‾
@@ -106,9 +104,6 @@ hook global WinSetOption filetype=moon %{
hook window InsertChar \n -group moon-indent _moon_indent_on_new_line
alias window alt moon-alternative-file
-
- set window comment_line_chars '--'
- set window comment_selection_chars ''
}
hook -group moon-highlight global WinSetOption filetype=(?!moon).* %{ rmhl moon }
diff --git a/test/regression/860-python-incorrect-commenting/rc b/test/regression/860-python-incorrect-commenting/rc
index 4eec08e1..909f53ff 100644
--- a/test/regression/860-python-incorrect-commenting/rc
+++ b/test/regression/860-python-incorrect-commenting/rc
@@ -1,4 +1,3 @@
source "%val{runtime}/colors/default.kak"
-source "%val{runtime}/rc/core/formatter.kak"
source "%val{runtime}/rc/core/python.kak"
set buffer filetype python