Mercurial > vim
view runtime/syntax/hex.vim @ 34232:47385c831d92 v9.1.0061
patch 9.1.0061: UX of visual highlighting can be improved
Commit: https://github.com/vim/vim/commit/e6d8b4662ddf9356da53f56e363b67b524fd8825
Author: Christian Brabandt <cb@256bit.org>
Date: Sun Jan 28 23:33:29 2024 +0100
patch 9.1.0061: UX of visual highlighting can be improved
Problem: UX of visual highlighting can be improved
Solution: Improve readibility of visual highlighting,
by setting better foreground and background
colors
The default visual highlighting currently is nice in that it overlays
the actual syntax highlighting by using a separate distinct background
color.
However, this can cause hard to read text, because the contrast
between the actual syntax element and the background color is way too
low. That is an issue, that has been bothering colorschemes authors for
quite some time so much, that they are defining the Visual highlighting
group to use a separate foreground and background color, so that the
syntax highlighting vanishes, but the text remains readable (ref:
vim/colorschemes#250)
So this is an attempt to perform the same fix for the default Visual
highlighting and just use a default foreground and background color
instead of using reverse.
I also removed the hard-coded changes to the Visual highlighting in
init_highlight. It's not quite clear to me, why those were there and not
added directly to the highlighting_init_<dark|light> struct.
closes: #13663
related: vim/colorschemes#250
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 28 Jan 2024 23:39:23 +0100 |
parents | 46763b01cd9a |
children |
line wrap: on
line source
" Vim syntax file " Language: Intel HEX " Maintainer: Markus Heidelberg <markus.heidelberg@web.de> " Previous version: Sams Ricahrd <sams@ping.at> " Last Change: 2015 Feb 24 " Each record (line) is built as follows: " " field digits states " " +----------+ " | start | 1 (':') hexRecStart " +----------+ " | count | 2 hexDataByteCount " +----------+ " | address | 4 hexNoAddress, hexDataAddress, (hexAddressFieldUnknown) " +----------+ " | type | 2 hexRecType, (hexRecTypeUnknown) " +----------+ " | data | 0..510 hexDataOdd, hexDataEven, hexExtendedAddress, hexStartAddress, (hexDataFieldUnknown, hexDataUnexpected) " +----------+ " | checksum | 2 hexChecksum " +----------+ " " States in parentheses in the upper format description indicate that they " should not appear in a valid file. " quit when a syntax file was already loaded if exists("b:current_syntax") finish endif syn match hexRecStart "^:" syn match hexDataByteCount "^:[0-9a-fA-F]\{2}" contains=hexRecStart nextgroup=hexAddress syn match hexAddress "[0-9a-fA-F]\{4}" transparent contained nextgroup=hexRecTypeUnknown,hexRecType " The address field groups include the record type field in the last 2 " characters, the proper match for highlighting follows below. syn match hexAddressFieldUnknown "^:[0-9a-fA-F]\{8}" contains=hexDataByteCount nextgroup=hexDataFieldUnknown,hexChecksum syn match hexDataAddress "^:[0-9a-fA-F]\{6}00" contains=hexDataByteCount nextgroup=hexDataOdd,hexChecksum syn match hexNoAddress "^:[0-9a-fA-F]\{6}01" contains=hexDataByteCount nextgroup=hexDataUnexpected,hexChecksum syn match hexNoAddress "^:[0-9a-fA-F]\{6}0[24]" contains=hexDataByteCount nextgroup=hexExtendedAddress syn match hexNoAddress "^:[0-9a-fA-F]\{6}0[35]" contains=hexDataByteCount nextgroup=hexStartAddress syn match hexRecTypeUnknown "[0-9a-fA-F]\{2}" contained syn match hexRecType "0[0-5]" contained syn match hexDataFieldUnknown "[0-9a-fA-F]\{2}" contained nextgroup=hexDataFieldUnknown,hexChecksum " alternating highlight per byte for easier reading syn match hexDataOdd "[0-9a-fA-F]\{2}" contained nextgroup=hexDataEven,hexChecksum syn match hexDataEven "[0-9a-fA-F]\{2}" contained nextgroup=hexDataOdd,hexChecksum " data bytes which should not exist syn match hexDataUnexpected "[0-9a-fA-F]\{2}" contained nextgroup=hexDataUnexpected,hexChecksum " Data digit pair regex usage also results in only highlighting the checksum " if the number of data characters is even. " special data fields syn match hexExtendedAddress "[0-9a-fA-F]\{4}" contained nextgroup=hexDataUnexpected,hexChecksum syn match hexStartAddress "[0-9a-fA-F]\{8}" contained nextgroup=hexDataUnexpected,hexChecksum syn match hexChecksum "[0-9a-fA-F]\{2}$" contained " Folding Data Records below an Extended Segment/Linear Address Record syn region hexExtAdrBlock start="^:[0-9a-fA-F]\{7}[24]" skip="^:[0-9a-fA-F]\{7}0" end="^:"me=s-1 fold transparent " Define the default highlighting. " Only when an item doesn't have highlighting yet " The default methods for highlighting. Can be overridden later hi def link hexRecStart hexRecType hi def link hexDataByteCount Constant hi def hexAddressFieldUnknown term=italic cterm=italic gui=italic hi def link hexDataAddress Comment hi def link hexNoAddress DiffAdd hi def link hexRecTypeUnknown hexRecType hi def link hexRecType WarningMsg hi def hexDataFieldUnknown term=italic cterm=italic gui=italic hi def hexDataOdd term=bold cterm=bold gui=bold hi def hexDataEven term=NONE cterm=NONE gui=NONE hi def link hexDataUnexpected Error hi def link hexExtendedAddress hexDataAddress hi def link hexStartAddress hexDataAddress hi def link hexChecksum DiffChange let b:current_syntax = "hex" " vim: ts=8