From 7a3708fe3e0ad38fd2835cd4e30f60d9a2827b42 Mon Sep 17 00:00:00 2001 From: Alexander Gehrke Date: Sat, 26 Jun 2021 10:23:02 +0200 Subject: [PATCH] Add kitty syntax --- syntax/kitty-session.vim | 25 +++++++++ syntax/kitty.vim | 106 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 131 insertions(+) create mode 100644 syntax/kitty-session.vim create mode 100644 syntax/kitty.vim diff --git a/syntax/kitty-session.vim b/syntax/kitty-session.vim new file mode 100644 index 0000000..c6bae39 --- /dev/null +++ b/syntax/kitty-session.vim @@ -0,0 +1,25 @@ +" Vim syntax file +" Language: Kitty session + +if exists("b:current_syntax") + finish +endif + +syn keyword kittySessionCommand + \ new_tab + \ new_os_window + \ layout + \ launch + \ focus + \ enabled_layouts + \ cd + \ title + \ os_window_size + \ os_window_class + +syn keyword kittyTodo contained TODO FIXME XXX +syn match kittyComment "^#.*" contains=kittyTodo + +hi def link kittySessionCommand Keyword +hi def link kittyComment Comment +hi def link kittyTodo Todo diff --git a/syntax/kitty.vim b/syntax/kitty.vim new file mode 100644 index 0000000..ff82987 --- /dev/null +++ b/syntax/kitty.vim @@ -0,0 +1,106 @@ +" Vim syntax file +" Language: Kitty config + +if exists("b:current_syntax") + finish +endif + +syn match kittyKW '^\S*' contains=kittyOptions +syn match kittyMapKW '^\(mouse_\)\?map' contains=kittyMap + \ nextgroup=kittyKeybind +syn keyword kittyOptions contained + \ active_border_color active_tab_background active_tab_font_style active_tab_foreground active_tab_title_template + \ adjust_column_width adjust_line_height allow_hyperlinks allow_remote_control + \ background background_image background_image_layout background_image_linear background_opacity background_tint + \ bell_border_color bell_on_tab bold_font bold_italic_font box_drawing_scale + \ clear_all_shortcuts click_interval clipboard_control close_on_child_death + \ color0 color1 color2 color3 color4 color5 color6 color7 color8 color9 color10 + \ color11 color12 color13 color14 color15 color16 color17 color18 color19 color20 + \ color21 color22 color23 color24 color25 color26 color27 color28 color29 color30 + \ color31 color32 color33 color34 color35 color36 color37 color38 color39 color40 + \ color41 color42 color43 color44 color45 color46 color47 color48 color49 color50 + \ color51 color52 color53 color54 color55 color56 color57 color58 color59 color60 + \ color61 color62 color63 color64 color65 color66 color67 color68 color69 color70 + \ color71 color72 color73 color74 color75 color76 color77 color78 color79 color80 + \ color81 color82 color83 color84 color85 color86 color87 color88 color89 color90 + \ color91 color92 color93 color94 color95 color96 color97 color98 color99 color100 + \ color101 color102 color103 color104 color105 color106 color107 color108 color109 color110 + \ color111 color112 color113 color114 color115 color116 color117 color118 color119 color120 + \ color121 color122 color123 color124 color125 color126 color127 color128 color129 color130 + \ color131 color132 color133 color134 color135 color136 color137 color138 color139 color140 + \ color141 color142 color143 color144 color145 color146 color147 color148 color149 color150 + \ color151 color152 color153 color154 color155 color156 color157 color158 color159 color160 + \ color161 color162 color163 color164 color165 color166 color167 color168 color169 color170 + \ color171 color172 color173 color174 color175 color176 color177 color178 color179 color180 + \ color181 color182 color183 color184 color185 color186 color187 color188 color189 color190 + \ color191 color192 color193 color194 color195 color196 color197 color198 color199 color200 + \ color201 color202 color203 color204 color205 color206 color207 color208 color209 color210 + \ color211 color212 color213 color214 color215 color216 color217 color218 color219 color220 + \ color221 color222 color223 color224 color225 color226 color227 color228 color229 color230 + \ color231 color232 color233 color234 color235 color236 color237 color238 color239 color240 + \ color241 color242 color243 color244 color245 color246 color247 color248 color249 color250 + \ color251 color252 color253 color254 color255 + \ command_on_bell confirm_os_window_close copy_on_select cursor cursor_beam_thickness cursor_blink_interval + \ cursor_shape cursor_stop_blinking_after cursor_text_color cursor_underline_thickness default_pointer_shape + \ detect_urls dim_opacity disable_ligatures draw_minimal_borders dynamic_background_opacity editor enable_audio_bell + \ enabled_layouts env focus_follows_mouse font_family font_features font_size force_ltr foreground + \ hide_window_decorations inactive_border_color inactive_tab_background inactive_tab_font_style inactive_tab_foreground + \ inactive_text_alpha initial_window_height initial_window_width input_delay italic_font kitten_alias + \ linux_display_server + \ macos_custom_beam_cursor macos_hide_from_tasks macos_option_as_alt macos_quit_when_last_window_closed + \ macos_show_window_title_in macos_thicken_font macos_titlebar_color macos_traditional_fullscreen + \ macos_window_resizable + \ mark1_background mark1_foreground mark2_background mark2_foreground mark3_background mark3_foreground + \ mouse_hide_wait + \ listen_on open_url_with placement_strategy pointer_shape_when_dragging pointer_shape_when_grabbed + \ remember_window_size repaint_delay resize_debounce_time resize_draw_strategy resize_in_steps + \ scrollback_fill_enlarged_window scrollback_lines scrollback_pager scrollback_pager_history_size + \ select_by_word_characters selection_background selection_foreground + \ shell single_window_margin_width startup_session strip_trailing_spaces symbol_map sync_to_monitor + \ tab_activity_symbol tab_bar_background tab_bar_edge tab_bar_margin_height tab_bar_margin_width tab_bar_min_tabs + \ tab_bar_style tab_fade tab_powerline_style tab_separator tab_switch_strategy tab_title_template + \ term touch_scroll_multiplier update_check_interval url_color url_prefixes url_style visual_bell_duration + \ wayland_titlebar_color wheel_scroll_multiplier window_alert_on_bell + \ window_border_width window_margin_width window_padding_width window_resize_step_cells + \ window_resize_step_lines + +syn keyword kittyMap contained map mouse_map nextgroup=kittyKeybind + +syn match kittyActionKW '\s*\S*\s*' contained contains=kittyInvalidAction,kittyAction +syn match kittyInvalidAction '\S*' contained +syn keyword kittyAction contained + \ disable_ligatures_in paste_from_buffer something no_op combine action + \ set_font_size pass_selection_to_program new_window launch goto_tab new_tab + \ goto_layout change_font_size clear_terminal load_config send_text click + \ release press doublepress triplepress copy_to_clipboard paste_from_clipboard + \ paste_from_selection scroll_line_up scroll_line_down scroll_page_up scroll_page_down scroll_home + \ scroll_end show_scrollback new_os_window close_window next_window previous_window + \ move_window_forward move_window_backward move_window_to_top start_resizing_window first_window second_window + \ third_window fourth_window fifth_window sixth_window seventh_window eighth_window + \ ninth_window tenth_window next_tab previous_tab close_tab close_os_window + \ move_tab_forward move_tab_backward set_tab_title next_layout kitten toggle_fullscreen + \ toggle_maximized edit_config_file kitty_shell set_background_opacity load_config_file debug_config + \ move_window neighboring_window + +syn region kittyKeybind start=' ' end=' ' contains=kittyMod,kittyKey,kittyKeyComb contained nextgroup=kittyActionKW + +syn keyword kittyMod contained ctrl alt shift cmd kitty_mod +syn match kittyKey '[A-Za-z0-9_]' contained +syn match kittyKeyComb '[+>]' contained + +syn match kittyComment /^\s*#.*$/ contains=kittyTodo display +syn keyword kittyTodo contained TODO FIXME XXX +syn region kittyString start=+"+ skip=+\\\\\|\\"+ end=+"+ oneline +syn region kittyString start=+'+ skip=+\\\\\|\\'+ end=+'+ oneline + +hi def link kittyOptions Keyword +hi def link kittyMap Keyword +hi def link kittyInvalidAction Error +hi def link kittyAction Keyword +hi def link kittyComment Comment +hi def link kittyKey Constant +hi def link kittyMod Keyword +hi def link kittyTodo Todo +hi def link kittyString String + +let b:current_syntax = "kitty"