summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rc/filetype/coq.kak9
-rw-r--r--rc/filetype/elvish.kak9
-rw-r--r--rc/filetype/fsharp.kak9
-rw-r--r--rc/filetype/just.kak9
-rw-r--r--rc/filetype/makefile.kak9
-rw-r--r--rc/filetype/markdown.kak9
-rw-r--r--rc/filetype/pascal.kak9
-rw-r--r--rc/filetype/protobuf.kak9
-rw-r--r--rc/filetype/taskpaper.kak9
9 files changed, 81 insertions, 0 deletions
diff --git a/rc/filetype/coq.kak b/rc/filetype/coq.kak
index 6fbc0998..5ef43c86 100644
--- a/rc/filetype/coq.kak
+++ b/rc/filetype/coq.kak
@@ -11,6 +11,7 @@ hook global BufCreate .*\.v %{
hook global WinSetOption filetype=coq %{
require-module coq
+ hook window ModeChange pop:insert:.* -group coq-trim-indent coq-trim-indent
hook window InsertChar \n -group coq-indent coq-copy-indent-on-newline
set-option window static_words %opt{coq_static_words}
@@ -115,4 +116,12 @@ define-command -hidden coq-copy-indent-on-newline %{
}
}
+define-command -hidden coq-trim-indent %{
+ evaluate-commands -no-hooks -draft -itersel %{
+ execute-keys <a-x>
+ # remove trailing white spaces
+ try %{ execute-keys -draft s \h + $ <ret> d }
+ }
+}
+
}
diff --git a/rc/filetype/elvish.kak b/rc/filetype/elvish.kak
index 29099c07..19d8d40d 100644
--- a/rc/filetype/elvish.kak
+++ b/rc/filetype/elvish.kak
@@ -7,6 +7,7 @@ hook global BufCreate .*\.elv %{
hook global WinSetOption filetype=elvish %<
require-module elvish
+ hook window ModeChange pop:insert:.* -group elvish-trim-indent elvish-trim-indent
hook window InsertChar \n -group elvish-insert elvish-indent
hook window InsertChar [\]})] -group elvish-insert elvish-deindent
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window elvish-.+ }
@@ -36,6 +37,14 @@ add-highlighter shared/elvish/code/keyword_block regex \}\h+(elif|else|except|fi
add-highlighter shared/elvish/code/metachar regex [*?|&\;<>()[\]{}] 0:operator
+define-command -hidden elvish-trim-indent %{
+ evaluate-commands -no-hooks -draft -itersel %{
+ execute-keys <a-x>
+ # remove trailing white spaces
+ try %{ execute-keys -draft s \h + $ <ret> d }
+ }
+}
+
define-command -hidden elvish-indent %< evaluate-commands -draft -itersel %<
execute-keys <semicolon>
try %<
diff --git a/rc/filetype/fsharp.kak b/rc/filetype/fsharp.kak
index f534c423..03aab385 100644
--- a/rc/filetype/fsharp.kak
+++ b/rc/filetype/fsharp.kak
@@ -15,6 +15,7 @@ hook global WinSetOption filetype=fsharp %{
require-module fsharp
# indent on newline
+ hook window ModeChange pop:insert:.* -group fsharp-trim-indent fsharp-trim-indent
hook window InsertChar \n -group fsharp-insert fsharp-insert-on-new-line
hook window InsertChar \n -group fsharp-indent fsharp-indent-on-new-line
@@ -125,6 +126,14 @@ add-highlighter shared/fsharp/code/ regex "\B(\(\))\B" 0:value
# Commands
# ‾‾‾‾‾‾‾‾
+define-command -hidden fsharp-trim-indent %{
+ evaluate-commands -no-hooks -draft -itersel %{
+ execute-keys <a-x>
+ # remove trailing white spaces
+ try %{ execute-keys -draft s \h + $ <ret> d }
+ }
+}
+
define-command -hidden fsharp-insert-on-new-line %{
evaluate-commands -draft -itersel %{
# copy // comments prefix and following white spaces
diff --git a/rc/filetype/just.kak b/rc/filetype/just.kak
index 70e2f72e..64a977ba 100644
--- a/rc/filetype/just.kak
+++ b/rc/filetype/just.kak
@@ -8,6 +8,7 @@ hook global BufCreate .*/?[jJ]ustfile %{
hook global WinSetOption filetype=justfile %{
require-module justfile
+ hook window ModeChange pop:insert:.* -group justfile-trim-indent justfile-trim-indent
hook window InsertChar \n -group justfile-indent just-indent-on-new-line
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window justfile-.+ }
}
@@ -23,6 +24,14 @@ provide-module justfile %{
# Indentation
# ‾‾‾‾‾‾‾‾‾‾‾
+define-command -hidden justfile-trim-indent %{
+ evaluate-commands -no-hooks -draft -itersel %{
+ execute-keys <a-x>
+ # remove trailing white spaces
+ try %{ execute-keys -draft s \h + $ <ret> d }
+ }
+}
+
define-command -hidden just-indent-on-new-line %{
evaluate-commands -draft -itersel %{
# preserve previous line indent
diff --git a/rc/filetype/makefile.kak b/rc/filetype/makefile.kak
index ab752a3e..2026c745 100644
--- a/rc/filetype/makefile.kak
+++ b/rc/filetype/makefile.kak
@@ -13,6 +13,7 @@ hook global WinSetOption filetype=makefile %{
set-option window static_words %opt{makefile_static_words}
+ hook window ModeChange pop:insert:.* -group makefile-trim-indent makefile-trim-indent
hook window InsertChar \n -group makefile-indent makefile-indent-on-new-line
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window makefile-.+ }
}
@@ -50,6 +51,14 @@ evaluate-commands %sh{
# Commands
# ‾‾‾‾‾‾‾‾
+define-command -hidden makefile-trim-indent %{
+ evaluate-commands -no-hooks -draft -itersel %{
+ execute-keys <a-x>
+ # remove trailing white spaces
+ try %{ execute-keys -draft s \h + $ <ret> d }
+ }
+}
+
define-command -hidden makefile-indent-on-new-line %{
evaluate-commands -draft -itersel %{
# preserve previous line indent
diff --git a/rc/filetype/markdown.kak b/rc/filetype/markdown.kak
index 6a15e587..e5ed8d58 100644
--- a/rc/filetype/markdown.kak
+++ b/rc/filetype/markdown.kak
@@ -14,6 +14,7 @@ hook global BufCreate .*[.](markdown|md|mkd) %{
hook global WinSetOption filetype=markdown %{
require-module markdown
+ hook window ModeChange pop:insert:.* -group markdown-trim-indent markdown-trim-indent
hook window InsertChar \n -group markdown-insert markdown-insert-on-new-line
hook window InsertChar \n -group markdown-indent markdown-indent-on-new-line
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window markdown-.+ }
@@ -99,6 +100,14 @@ add-highlighter shared/markdown/inline/text/ regex "\H( {2,})$" 1:+r@meta
# Commands
# ‾‾‾‾‾‾‾‾
+define-command -hidden markdown-trim-indent %{
+ evaluate-commands -no-hooks -draft -itersel %{
+ execute-keys <a-x>
+ # remove trailing white spaces
+ try %{ execute-keys -draft s \h + $ <ret> d }
+ }
+}
+
define-command -hidden markdown-insert-on-new-line %{
try %{ execute-keys -draft -itersel k <a-x> s ^\h*\K((>\h*)+([*+-]\h)?|(>\h*)*[*+-]\h)\h* <ret> y gh j P }
}
diff --git a/rc/filetype/pascal.kak b/rc/filetype/pascal.kak
index 9d8267a4..8c70210b 100644
--- a/rc/filetype/pascal.kak
+++ b/rc/filetype/pascal.kak
@@ -14,6 +14,7 @@ hook global BufCreate .*\.(lpr|lfm)$ %{
hook global WinSetOption filetype=((free|object)?pascal|delphi) %[
require-module pascal
+ hook window ModeChange pop:insert:.* -group pascal-trim-indent pascal-trim-indent
hook window InsertChar \n -group pascal-indent pascal-indent-on-new-line
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window pascal-.+ }
set-option window static_words %opt{static_words}
@@ -189,6 +190,14 @@ EOF
done
+define-command -hidden pascal-trim-indent %{
+ evaluate-commands -no-hooks -draft -itersel %{
+ execute-keys <a-x>
+ # remove trailing white spaces
+ try %{ execute-keys -draft s \h + $ <ret> d }
+ }
+}
+
define-command -hidden pascal-indent-on-new-line %{
evaluate-commands -no-hooks -draft -itersel %{
# preserve previous line indent
diff --git a/rc/filetype/protobuf.kak b/rc/filetype/protobuf.kak
index 3d9c9fba..ba0c52a3 100644
--- a/rc/filetype/protobuf.kak
+++ b/rc/filetype/protobuf.kak
@@ -15,6 +15,7 @@ hook global WinSetOption filetype=protobuf %[
set-option window static_words %opt{protobuf_static_words}
+ hook window ModeChange pop:insert:.* -group protobuf-trim-indent protobuf-trim-indent
hook -group protobuf-indent window InsertChar \n protobuf-indent-on-newline
hook -group protobuf-indent window InsertChar \{ protobuf-indent-on-opening-curly-brace
hook -group protobuf-indent window InsertChar \} protobuf-indent-on-closing-curly-brace
@@ -66,6 +67,14 @@ evaluate-commands %sh{
# Commands
# ‾‾‾‾‾‾‾‾
+define-command -hidden protobuf-trim-indent %{
+ evaluate-commands -no-hooks -draft -itersel %{
+ execute-keys <a-x>
+ # remove trailing white spaces
+ try %{ execute-keys -draft s \h + $ <ret> d }
+ }
+}
+
define-command -hidden protobuf-indent-on-newline %~
evaluate-commands -draft -itersel %[
# preserve previous line indent
diff --git a/rc/filetype/taskpaper.kak b/rc/filetype/taskpaper.kak
index dc93b16f..94ab1b81 100644
--- a/rc/filetype/taskpaper.kak
+++ b/rc/filetype/taskpaper.kak
@@ -14,6 +14,7 @@ hook global BufCreate .*\.taskpaper %{
hook global WinSetOption filetype=taskpaper %{
require-module taskpaper
+ hook window ModeChange pop:insert:.* -group taskpaper-trim-indent taskpaper-trim-indent
hook window InsertChar \n -group taskpaper-indent taskpaper-indent-on-new-line
hook -once -always window WinSetOption filetype=.* %{ remove-hooks window taskpaper-.+ }
}
@@ -40,6 +41,14 @@ add-highlighter shared/taskpaper/ regex (([a-z]+://\S+)|((mailto:)[\w+-]+@\S+))
# Commands
# ‾‾‾‾‾‾‾‾
+define-command -hidden taskpaper-trim-indent %{
+ evaluate-commands -no-hooks -draft -itersel %{
+ execute-keys <a-x>
+ # remove trailing white spaces
+ try %{ execute-keys -draft s \h + $ <ret> d }
+ }
+}
+
define-command -hidden taskpaper-indent-on-new-line %{
evaluate-commands -draft -itersel %{
# preserve previous line indent