summaryrefslogtreecommitdiff
path: root/.config/shells/zsh/plugins/zsh-syntax-highlighting/highlighters/cursor
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@simplelittledream.com>2022-07-14 19:09:06 -0400
committerJacob McDonnell <jacob@simplelittledream.com>2022-07-14 19:09:06 -0400
commited4daf7429bf2580118aad87b8f3e2011efed7ec (patch)
tree82f9d8ed68de119e5777f5ecfae9df4a92fe92b3 /.config/shells/zsh/plugins/zsh-syntax-highlighting/highlighters/cursor
Initial commit
Diffstat (limited to '.config/shells/zsh/plugins/zsh-syntax-highlighting/highlighters/cursor')
-rw-r--r--.config/shells/zsh/plugins/zsh-syntax-highlighting/highlighters/cursor/README.md24
-rw-r--r--.config/shells/zsh/plugins/zsh-syntax-highlighting/highlighters/cursor/cursor-highlighter.zsh47
2 files changed, 71 insertions, 0 deletions
diff --git a/.config/shells/zsh/plugins/zsh-syntax-highlighting/highlighters/cursor/README.md b/.config/shells/zsh/plugins/zsh-syntax-highlighting/highlighters/cursor/README.md
new file mode 100644
index 0000000..c4f22b8
--- /dev/null
+++ b/.config/shells/zsh/plugins/zsh-syntax-highlighting/highlighters/cursor/README.md
@@ -0,0 +1,24 @@
+zsh-syntax-highlighting / highlighters / cursor
+-----------------------------------------------
+
+This is the `cursor` highlighter, that highlights the cursor.
+
+
+### How to tweak it
+
+This highlighter defines the following styles:
+
+* `cursor` - the style for the current cursor position
+
+To override one of those styles, change its entry in `ZSH_HIGHLIGHT_STYLES`,
+for example in `~/.zshrc`:
+
+```zsh
+ZSH_HIGHLIGHT_STYLES[cursor]='bg=blue'
+```
+
+The syntax for values is the same as the syntax of "types of highlighting" of
+the zsh builtin `$zle_highlight` array, which is documented in [the `zshzle(1)`
+manual page][zshzle-Character-Highlighting].
+
+[zshzle-Character-Highlighting]: http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Character-Highlighting
diff --git a/.config/shells/zsh/plugins/zsh-syntax-highlighting/highlighters/cursor/cursor-highlighter.zsh b/.config/shells/zsh/plugins/zsh-syntax-highlighting/highlighters/cursor/cursor-highlighter.zsh
new file mode 100644
index 0000000..81633a3
--- /dev/null
+++ b/.config/shells/zsh/plugins/zsh-syntax-highlighting/highlighters/cursor/cursor-highlighter.zsh
@@ -0,0 +1,47 @@
+# -------------------------------------------------------------------------------------------------
+# Copyright (c) 2010-2011 zsh-syntax-highlighting contributors
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without modification, are permitted
+# provided that the following conditions are met:
+#
+# * Redistributions of source code must retain the above copyright notice, this list of conditions
+# and the following disclaimer.
+# * Redistributions in binary form must reproduce the above copyright notice, this list of
+# conditions and the following disclaimer in the documentation and/or other materials provided
+# with the distribution.
+# * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
+# may be used to endorse or promote products derived from this software without specific prior
+# written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
+# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# -------------------------------------------------------------------------------------------------
+# -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
+# vim: ft=zsh sw=2 ts=2 et
+# -------------------------------------------------------------------------------------------------
+
+
+# Define default styles.
+: ${ZSH_HIGHLIGHT_STYLES[cursor]:=standout}
+
+# Whether the cursor highlighter should be called or not.
+_zsh_highlight_highlighter_cursor_predicate()
+{
+ # remove cursor highlighting when the line is finished
+ [[ $WIDGET == zle-line-finish ]] || _zsh_highlight_cursor_moved
+}
+
+# Cursor highlighting function.
+_zsh_highlight_highlighter_cursor_paint()
+{
+ [[ $WIDGET == zle-line-finish ]] && return
+
+ _zsh_highlight_add_highlight $CURSOR $(( $CURSOR + 1 )) cursor
+}