1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-03 06:00:05 +08:00
SpaceVim/bundle/calendar.vim/syntax/calendar.vim
2022-05-28 15:29:51 +08:00

104 lines
5.2 KiB
VimL

" =============================================================================
" Filename: syntax/calendar.vim
" Author: itchyny
" License: MIT License
" Last Change: 2019/07/30 22:38:01.
" =============================================================================
if version < 700
syntax clear
elseif exists('b:current_syntax')
finish
endif
let s:save_cpo = &cpo
set cpo&vim
let s:is_gui = has('gui_running') || (has('termguicolors') && &termguicolors)
let s:fg_color = calendar#color#normal_fg_color()
let s:bg_color = calendar#color#normal_bg_color()
let s:comment_fg_color = calendar#color#comment_fg_color()
let s:select_color = calendar#color#gen_color(s:fg_color, s:bg_color, 1, 4)
let s:space_fg_color = calendar#color#gen_color(s:fg_color, s:bg_color, 0, 1)
let s:space_bg_color = calendar#color#gen_color(s:fg_color, s:bg_color, 1, 0)
let s:is_win32cui = has('win32') && !s:is_gui
let s:is_dark = calendar#color#is_dark()
if !s:is_gui
if s:is_win32cui
if s:is_dark
let s:select_color = 8
let s:today_color = 10
let s:today_fg_color = 0
let s:othermonth_fg_color = 8
else
let s:select_color = 7
let s:today_color = 2
let s:today_fg_color = 15
let s:othermonth_fg_color = 7
endif
let s:weekday_color = 8
let s:weekday_fg_color = 0
let s:sunday_bg_color = 12
let s:saturday_bg_color = 9
let s:sunday_fg_color = 0
let s:saturday_fg_color = 0
let s:sunday_title_fg_color = s:sunday_fg_color
let s:saturday_title_fg_color = s:saturday_fg_color
elseif s:is_dark
let s:sunday_bg_color = calendar#color#select_rgb(s:fg_color, 0, 5)
let s:saturday_bg_color = calendar#color#select_rgb(s:fg_color, 2, 5)
let s:sunday_fg_color = calendar#color#gen_color(s:sunday_bg_color, s:bg_color, 1, 7)
let s:saturday_fg_color = calendar#color#gen_color(s:saturday_bg_color, s:bg_color, 1, 7)
let s:today_color = calendar#color#select_rgb(s:fg_color, 1, 5)
let s:today_fg_color = calendar#color#gen_color(s:today_color, s:bg_color, 1, 5)
else
let s:sunday_fg_color = calendar#color#select_rgb(s:bg_color, 0, 6)
let s:saturday_fg_color = calendar#color#select_rgb(s:bg_color, 2, 6)
let s:sunday_bg_color = calendar#color#gen_color(s:sunday_fg_color, s:bg_color, 1, 4)
let s:saturday_bg_color = calendar#color#gen_color(s:saturday_fg_color, s:bg_color, 1, 4)
let s:today_fg_color = calendar#color#gen_color(calendar#color#select_rgb(s:fg_color, 1, 6), s:fg_color, 4, 3)
let s:today_color = calendar#color#gen_color(s:today_fg_color, s:bg_color, 1, 3)
endif
else
let s:sunday_fg_color = calendar#color#select_rgb(s:is_dark ? s:fg_color : s:bg_color, 1)
let s:saturday_fg_color = calendar#color#select_rgb(s:is_dark ? s:fg_color : s:bg_color, 4)
let s:sunday_bg_color = calendar#color#gen_color(s:sunday_fg_color, s:is_dark ? s:fg_color : s:bg_color, 1, 3)
let s:saturday_bg_color = calendar#color#gen_color(s:saturday_fg_color, s:is_dark ? s:fg_color : s:bg_color, 1, 3)
let s:today_fg_color = calendar#color#gen_color(calendar#color#select_rgb(s:is_dark ? s:fg_color : s:bg_color, 2), s:is_dark ? s:bg_color : s:fg_color, 4, 3)
let s:today_color = calendar#color#gen_color(s:today_fg_color, s:is_dark ? s:fg_color : s:bg_color, 1, 3)
endif
if !s:is_win32cui
let s:weekday_color = calendar#color#gen_color(s:fg_color, s:bg_color, 1, 5)
let s:weekday_fg_color = calendar#color#gen_color(s:fg_color, s:bg_color, 3, 2)
let s:othermonth_fg_color = calendar#color#gen_color(s:fg_color, s:bg_color, 3, 4)
let s:sunday_title_fg_color = calendar#color#gen_color(s:sunday_fg_color, s:sunday_bg_color, 3, 1)
let s:saturday_title_fg_color = calendar#color#gen_color(s:saturday_fg_color, s:saturday_bg_color, 3, 1)
endif
call calendar#color#syntax('Select', '', s:select_color, '')
call calendar#color#syntax('Sunday', s:sunday_fg_color, s:sunday_bg_color, '')
call calendar#color#syntax('Saturday', s:saturday_fg_color, s:saturday_bg_color, '')
call calendar#color#syntax('TodaySunday', s:sunday_fg_color, s:sunday_bg_color, 'bold')
call calendar#color#syntax('TodaySaturday', s:saturday_fg_color, s:saturday_bg_color, 'bold')
call calendar#color#syntax('Today', s:today_fg_color, s:today_color, 'bold')
call calendar#color#syntax('DayTitle', s:weekday_fg_color, s:weekday_color, '')
call calendar#color#syntax('SundayTitle', s:sunday_title_fg_color, s:sunday_bg_color, '')
call calendar#color#syntax('SaturdayTitle', s:saturday_title_fg_color, s:saturday_bg_color, '')
call calendar#color#syntax('OtherMonth', s:othermonth_fg_color, '', '')
call calendar#color#syntax('OtherMonthSelect', s:othermonth_fg_color, s:select_color, '')
call calendar#color#syntax('NormalSpace', s:space_fg_color, s:space_bg_color, '')
call calendar#color#syntax('CommentSelect', s:comment_fg_color, s:select_color, '')
highlight link CalendarComment Comment
unlet! s:fg_color s:bg_color s:comment_fg_color s:select_color s:space_fg_color s:space_bg_color s:is_win32cui s:is_dark
\ s:today_color s:today_fg_color s:othermonth_fg_color s:weekday_color s:weekday_fg_color
\ s:sunday_bg_color s:sunday_fg_color s:sunday_title_fg_color
\ s:saturday_bg_color s:saturday_fg_color s:saturday_title_fg_color
let b:current_syntax = 'calendar'
let &cpo = s:save_cpo
unlet s:save_cpo