Commit graph

193 commits

Author SHA1 Message Date
Eli Zaretskii
cae528457c ; Add 2023 to copyright years. 2023-01-01 05:31:12 -05:00
Yuan Fu
558b59d81b
Add color fontification in css-ts-mode (bug#60405)
* lisp/textmodes/css-mode.el (css-ts-mode): Add color fontification
and syntax-propertize-function.
2022-12-29 11:52:06 -08:00
Yuan Fu
a96a7c8115
; * lisp/textmodes/css-mode.el (css-ts-mode): Fix imenu setup. 2022-12-29 11:41:26 -08:00
Yuan Fu
248c13dcfe
Update tree-sitter major modes to use the new Imenu facility
See previous commit for more explanation.

* lisp/progmodes/c-ts-mode.el (c-ts-mode--defun-name): Handle more
types.
(c-ts-mode--imenu-1)
(c-ts-mode--imenu): Remove functions.
(c-ts-base-mode): Setup Imenu.
* lisp/progmodes/csharp-mode.el (csharp-ts-mode--imenu-1)
(csharp-ts-mode--imenu): Remove functions.
(csharp-ts-mode): Setup Imenu.
* lisp/progmodes/java-ts-mode.el (java-ts-mode--imenu-1)
(java-ts-mode--imenu): Remove functions.
(java-ts-mode): Setup Imenu.
* lisp/progmodes/js.el (js--treesit-imenu-1)
(js--treesit-imenu): Remove functions.
(js--treesit-valid-imenu-entry): New function.
(js-ts-mode): Setup Imenu.
* lisp/progmodes/json-ts-mode.el (json-ts-mode--defun-name): Trim the
quotes.
(json-ts-mode--imenu-1)
(json-ts-mode--imenu): Remove functions.
(json-ts-mode): Setup Imenu.
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--imenu)
(rust-ts-mode--imenu-1): Remove functions.
(rust-ts-mode): Setup Imenu.
* lisp/progmodes/typescript-ts-mode.el:
(typescript-ts-base-mode): Remove treesit-defun-prefer-top-level, it's
not used anymore.  Setup Imenu.  Setup treesit-defun-name-function.
* lisp/textmodes/css-mode.el (css--treesit-imenu-1)
(css--treesit-imenu): Remove functions.
(css-ts-mode): Setup Imenu.
* lisp/textmodes/toml-ts-mode.el (toml-ts-mode--defun-name): Fix it
and add a fallback.
(toml-ts-mode--imenu-1)
(toml-ts-mode--imenu): Remove functions.
(toml-ts-mode): Setup Imenu.
2022-12-27 20:58:53 -08:00
Yuan Fu
fbb4eb919b
Support treesit-defun-name in tree-sitter major modes
* lisp/progmodes/csharp-mode.el (csharp-ts-mode--defun-name): New
function.
(csharp-ts-mode--imenu-1): Extract into new function.
(csharp-ts-mode): Setup treesit-defun-name-function.
* lisp/progmodes/java-ts-mode.el (java-ts-mode--defun-name): New
function.
(java-ts-mode--imenu-1): Extract into new function.
(java-ts-mode): Setup treesit-defun-name-function.
* lisp/progmodes/js.el (js-treesit-current-defun): Remove function.
This function is not used (for a while already).
(js--treesit-defun-name): New function.
(js--treesit-imenu-1): Extract into new function.
(js-ts-mode): Setup treesit-defun-name-function.
* lisp/progmodes/json-ts-mode.el (json-ts-mode--defun-name): New
function.
(json-ts-mode--imenu-1): Extract into new function.
(json-ts-mode): Setup treesit-defun-name-function.
* lisp/progmodes/python.el (python--treesit-defun-name): New function.
(python--imenu-treesit-create-index-1): Extract into new function.
(python-ts-mode): Setup treesit-defun-name-function.
* lisp/progmodes/rust-ts-mode.el (rust-ts-mode--defun-name): New
function.
(rust-ts-mode--imenu-1): Extract into new function.
(rust-ts-mode): Setup treesit-defun-name-function.
* lisp/textmodes/css-mode.el (css--treesit-defun-name): New function.
(css--treesit-imenu-1): Extract into new function.
(css-ts-mode): Setup treesit-defun-name-function.
* lisp/textmodes/toml-ts-mode.el (toml-ts-mode--get-table-name):
Remove function.
(toml-ts-mode--defun-name): New function.
(toml-ts-mode--imenu-1): Extract into new function.
(toml-ts-mode): Setup treesit-defun-name-function.
2022-12-24 18:43:03 -08:00
Theodor Thornhill
6479691cf0
Fix syntax-table for tree-sitter modes
When adapting the 'c-populate-syntax-table' for tree-sitter, I misread
the code, and thus some crucial entries were missing.  For the
relevant modes we use the same table as specified in the
non-tree-sitter major mode.

* lisp/progmodes/c-ts-mode.el (c-ts-mode--syntax-table): Add new
entries.
* lisp/progmodes/csharp-mode.el (csharp-ts-mode): Add new entries.
* lisp/progmodes/java-ts-mode.el (java-ts-mode--syntax-table): Add new
entries.
* lisp/progmodes/json-ts-mode.el (json-ts-mode--syntax-table): Add new
entries.
* lisp/progmodes/typescript-ts-mode.el
(typescript-ts-mode--syntax-table): Add new entries.
* lisp/textmodes/css-mode.el (css-ts-mode): Add new entries.
2022-12-07 12:01:51 -08:00
Yuan Fu
c26fe45cb8
Fix treesit-query-capture
Before this change Ftreesit_query_capture doesn't convert character
position to byte position for BEG and END parameters.  I observed
fontification issue in css files but couldn't figure out why, now I
know :-)

I decide to keep treesit--font-lock-query-expand-range, since it might
provide a escape hatch for problems we discover in the future, and it
should be very cheap so no downside of keeping it.

* lisp/textmodes/css-mode.el (css-ts-mode): Stop setting
treesit--font-lock-query-expand-range.
* lisp/treesit.el (treesit--font-lock-query-expand-range): Update
docstring.
* src/treesit.c (Ftreesit_query_capture): Convert BEG and END to byte
position.  Also added parentheses wround "beg_byte - visible_beg" in
the call to ts_query_cursor_set_byte_range (i.e., style change).
2022-12-05 19:56:47 -08:00
Theodor Thornhill
bbf1b93d43
Add more font-lock settings to css-ts-mode
* lisp/textmodes/css-mode.el (css--treesit-settings): Add new
font-lock features 'query', 'keyword', 'operator' and 'bracket'.
(css-ts-mode): Use new features.
2022-11-28 14:56:08 -08:00
Stefan Kangas
5e8c62ffca ; Fix typos 2022-11-23 05:49:22 +01:00
Yuan Fu
aaeaa310f0
Merge remote-tracking branch 'savannah/master' into feature/tree-sitter 2022-11-21 12:54:35 -08:00
Yuan Fu
6cf8bf5042
Allow major modes to tweak tree-sitter fontification
treesit--font-lock-query-expand-range allows a major mode to fix
fontification problems temporarily before the parser can be fixed.

* lisp/treesit.el (treesit--font-lock-query-expand-range): New variable.
(treesit-font-lock-fontify-region): Use the new variable.
* lisp/textmodes/css-mode.el (css-ts-mode): Use the new variable.
2022-11-21 11:26:46 -08:00
Eli Zaretskii
9f7ae2be60 ; Silence byte-compiler warnings
* lisp/textmodes/css-mode.el:
* lisp/progmodes/python.el:
* lisp/progmodes/json-ts-mode.el:
* lisp/progmodes/js.el:
* lisp/progmodes/java-ts-mode.el:
* lisp/progmodes/c-ts-mode.el: Add declarations of tree-sitter
functions.
2022-11-21 19:08:25 +02:00
Yuan Fu
a7ed5071b7
; * lisp/textmodes/css-mode.el (css-ts-mode): Fix typo. 2022-11-21 01:29:32 -08:00
Yuan Fu
1e62445200
Add separate keymaps for js/python/css-ts-mode
* lisp/progmodes/js.el (js-ts-mode-map)
* lisp/progmodes/python.el (python-ts-mode-map)
* lisp/textmodes/css-mode.el (css-ts-mode-map): New keymap.
2022-11-21 01:29:32 -08:00
Yuan Fu
32870d2f20
Limit recursion level for tree-sitter imenu functions
Generating imenu index doesn't require going down to the bottom of the
tree (defun's are usually top-level).  Add limit so we don't go too
far down on very large buffers.

* lisp/progmodes/c-ts-mode.el (c-ts-mode--imenu)
* lisp/progmodes/java-ts-mode.el (java-ts-mode--imenu)
* lisp/progmodes/js.el (js--treesit-imenu)
* lisp/progmodes/json-ts-mode.el (json-ts-mode--imenu)
* lisp/progmodes/python.el (python-imenu-treesit-create-index)
* lisp/textmodes/css-mode.el (css--treesit-imenu): Add limit to
treesit-induce-sparse-tree.
2022-11-20 17:04:58 -08:00
Eli Zaretskii
657947dc7c ; Improve recently-modified documentation
* lisp/progmodes/python.el (python-base-mode)
(python--treesit-fontify-string):
* lisp/textmodes/css-mode.el (css-base-mode):
* lisp/treesit.el (treesit-ready-p, treesit-comment-end)
(treesit-simple-indent-presets): Fix typos and wording in doc strings.

* doc/lispref/parsing.texi (Tree-sitter major modes):
* doc/lispref/modes.texi (Parser-based Indentation): Fix wording
and add cross-references.
2022-11-20 10:30:38 +02:00
Yuan Fu
655957087c
Expand css-ts-mode and merge it into css-mode
* lisp/progmodes/css-ts-mode.el: Deleted.
* lisp/textmodes/css-mode.el (css--treesit-indent-rules)
(css--treesit-settings): New variables.
(css--treesit-imenu-1)
(css--treesit-imenu): New functions.
* lisp/textmodes/css-mode.el (css-base-mode): New mode inherited by
both css-mode and css-ts-mode.
(css-ts-mode): New mode.
(css-mode): Inherit from css-base-mode, and move some setup to
css-base-mode.
2022-11-19 15:43:36 -08:00
Stefan Kangas
44ad422400 * lisp/textmodes/css-mode.el (css-mode-map): Prefer defvar-keymap. 2022-11-04 20:27:34 +01:00
Stefan Kangas
b7e867b841 Make point-at-eol and point-at-bol obsolete
* lisp/subr.el (point-at-eol, point-at-bol): Make XEmacs compat
aliases obsolete in favor of `pos-bol'/'line-beginning-position' or
'pos-eol'/'line-end-position'.  Update callers.
Ref: https://lists.gnu.org/r/emacs-devel/2022-08/msg00853.html
2022-08-23 04:54:57 +02:00
Simen Heggestøyl
4aa8115855 Recognize some more SCSS selectors
* lisp/textmodes/css-mode.el (css--selector-regexp): Recognize some
more SCSS selectors.

* test/lisp/textmodes/css-mode-resources/scss-selectors.txt: Add tests
for them.
2022-05-15 16:42:56 +02:00
Lars Ingebrigtsen
0da7689b16 Don't freeze Emacs on colour codes in sccs-mode
* lisp/textmodes/css-mode.el (css--font-lock-keywords): Don't
freeze Emacs on #ffffff #ffffff, and be more strict in parsing
selectors (bug#53203).
2022-05-15 14:13:14 +02:00
Simen Heggestøyl
b26574d7d7 Update CSS Multi-column Layout Module properties
* lisp/textmodes/css-mode.el (css-property-alist): Update CSS
Multi-column Layout Module properties.
2022-05-15 12:57:51 +02:00
Simen Heggestøyl
dfefe5cb31 ; * lisp/textmodes/css-mode.el: Fix link
* lisp/textmodes/css-mode.el (css-property-alist): Fix link to CSS
Flexible Box Layout Module.
2022-05-15 12:57:49 +02:00
Simen Heggestøyl
137720ee6e Update CSS Box Alignment Module properties
* lisp/textmodes/css-mode.el (css-property-alist): Update properties.
2022-05-15 12:57:46 +02:00
Simen Heggestøyl
2214f42202 Add all to CSS property list
* lisp/textmodes/css-mode.el (css-property-alist): Add new property
`all` from the CSS Cascading and Inheritance Level 3 module.
2022-05-15 12:57:38 +02:00
Eli Zaretskii
19dcb237b5 ; Add 2022 to copyright years. 2022-01-01 02:45:51 -05:00
Imran Khan
3f998a3fc8 * lisp/textmodes/css-mode.el: Fix typo. (Bug#51488)
Copyright-paperwork-exempt: yes
2021-10-29 19:06:40 +02:00
Stefan Kangas
f02624b342 ; Minor doc fixes found by checkdoc 2021-09-13 06:44:52 +02:00
Theodor Thornhill
34550b4492 Update to CSS Flexible Box Layout Module Level 2
* css-mode.el (css-property-alist): Update link.
2021-09-03 14:06:02 +02:00
Theodor Thornhill
0a7424360c Update to CSS Containment Module Level 2
* css-mode.el (css-property-alist): Update contain, and add
content-visibility.
2021-09-03 14:05:49 +02:00
Theodor Thornhill
538a401b0c Update to CSS Grid Layout Module Level 2
* css-mode.el (css-property-alist): Update to the newer spec, and add
the subgrid keywords
2021-09-03 14:05:37 +02:00
Theodor Thornhill
1778c90b57 Clean up css-property-alist for alignment
* css-mode.el (css-property-alist, css-value-class-alist): Provide new
position related entries for use in css-property-alist.  Make sure
that property-alist reflect the spec:
https://www.w3.org/TR/css-align-3/#property-index
2021-09-03 14:05:25 +02:00
Theodor Thornhill
e588fa45ce Add CSS Box Alignment Module Level 3 to css-mode
* lisp/textmodes/css-mode.el (css-property-alist): Consolidate
`align-{contents, items, self}', as well as the corresponding
values for `justify-{contents, items, self}' and `place-{contents,
items, self}'.  Values extracted from the flex part and into its
own block (bug#50345).
2021-09-03 08:14:48 +02:00
Theodor Thornhill
5ae02f90fe Add selection to css-pseudo-element-ids
* lisp/textmodes/css-mode.el (css-pseudo-element-ids): Add
selection as an element id (bug#50345).
2021-09-03 08:13:49 +02:00
Dmitry Gutov
c92ad6a75a Include colons in the completion strings
* lisp/textmodes/css-mode.el
(css--complete-pseudo-element-or-class):
Include colons in the completion strings. That's simply the nicer
behavior (e.g. someone typing : will see pseudo-elements in
completions as well), and by the standards, the colons are part of
their names anyway (of pseudo-elements and classes).
2021-05-15 03:28:39 +03:00
Dmitry Gutov
76ba00a161 Add :company-kind support to css-mode completion
* lisp/textmodes/css-mode.el (css--complete-pseudo-element-or-class)
(css--complete-property-value, css-completion-at-point)
(css--complete-at-rule): Add :company-kind properties, to annotate
completions with kinds returned in each case.
2021-05-15 03:28:28 +03:00
Stefan Kangas
8b07994e20 Convert many more links to use HTTPS 2021-03-24 10:20:18 +01:00
Stefan Kangas
458faaf4c3 Prefer defvar-local in textmodes/*.el
This skips libraries that might want compatibility with Emacs 24.2.

* lisp/textmodes/artist.el (artist-curr-go)
(artist-line-char-set, artist-line-char, artist-fill-char-set)
(artist-fill-char, artist-erase-char, artist-default-fill-char)
(artist-draw-region-min-y, artist-draw-region-max-y)
(artist-borderless-shapes):
* lisp/textmodes/css-mode.el (css--at-ids, css--bang-ids)
(css--nested-selectors-allowed):
* lisp/textmodes/enriched.el (enriched-old-bindings):
* lisp/textmodes/flyspell.el (flyspell-generic-check-word-predicate)
(flyspell-consider-dash-as-word-delimiter-flag)
(flyspell-dash-dictionary, flyspell-dash-local-dictionary)
(flyspell-word-cache-start, flyspell-word-cache-end)
(flyspell-word-cache-word, flyspell-word-cache-result)
(flyspell-changes, flyspell-auto-correct-pos)
(flyspell-auto-correct-region, flyspell-auto-correct-ring)
(flyspell-auto-correct-word):
* lisp/textmodes/ispell.el (ispell-local-dictionary-overridden)
(ispell-local-pdict, ispell-buffer-session-localwords):
* lisp/textmodes/refill.el (refill-ignorable-overlay)
(refill-doit):
* lisp/textmodes/sgml-mode.el (html--buffer-classes-cache)
(html--buffer-ids-cache):
* lisp/textmodes/table.el (table-mode-indicator):
* lisp/textmodes/tex-mode.el (tex-send-command-modified-tick):
* lisp/textmodes/two-column.el (2C-autoscroll-start, 2C-mode):
Prefer defvar-local.
2021-01-31 20:08:25 +01:00
Paul Eggert
ba05d005e5 Update copyright year to 2021
Run "TZ=UTC0 admin/update-copyright".
2021-01-01 01:13:56 -08:00
Dmitry Gutov
2efff5e61c css--complete-property-value: Limit the backward search
* lisp/textmodes/css-mode.el (css--complete-property-value):
Don't search back when ppss-innermost-start is nil (bug#44214).
2020-10-28 03:43:47 +02:00
Simen Heggestøyl
d34082671a Complete property values in multi-line CSS declarations
* lisp/textmodes/css-mode.el (css--complete-property-value): Complete
property values even when preceded by a newline (bug#44214).
2020-10-27 15:19:58 +01:00
Stefan Kangas
c6fa0ad315 ; Prefer https to http in many URLs
These were all tested with https and confirmed working.
2020-10-01 15:28:15 +02:00
Philip K
ca9c02af19 Allow CSS completion with multiple rules on one line
* css-mode.el (css--complete-property-value): Check for semi-colon
when completing property values (bug#43242).
2020-09-07 00:17:15 +02:00
Lars Ingebrigtsen
7d927fa8dd Use `format-prompt' when prompting with default values
* lisp/woman.el (woman-file-name):
* lisp/wid-edit.el (widget-file-prompt-value)
(widget-coding-system-prompt-value):
* lisp/w32-fns.el (w32-set-system-coding-system):
* lisp/vc/vc.el (vc-print-root-log):
* lisp/vc/vc-annotate.el (vc-annotate):
* lisp/vc/emerge.el (emerge-read-file-name):
* lisp/vc/ediff.el (ediff-directories)
(ediff-directory-revisions, ediff-directories3)
(ediff-merge-directories, )
(ediff-merge-directories-with-ancestor)
(ediff-merge-directory-revisions)
(ediff-merge-directory-revisions-with-ancestor)
(ediff-merge-revisions, ediff-merge-revisions-with-ancestor)
(ediff-revision):
* lisp/vc/ediff-util.el (ediff-toggle-regexp-match):
* lisp/vc/ediff-mult.el (ediff-filegroup-action):
* lisp/vc/add-log.el (prompt-for-change-log-name):
* lisp/textmodes/table.el (table-insert-row-column)
(table-span-cell, table-split-cell-horizontally)
(table-split-cell, table-justify, table-generate-source)
(table-insert-sequence, table-capture)
(table--read-from-minibuffer, table--query-justification):
* lisp/textmodes/sgml-mode.el (sgml-tag, sgml-tag-help):
* lisp/textmodes/reftex-ref.el (reftex-goto-label):
* lisp/textmodes/refer.el (refer-get-bib-files):
* lisp/textmodes/css-mode.el (css-lookup-symbol):
* lisp/term.el (serial-read-name, serial-read-speed):
* lisp/speedbar.el (speedbar-change-initial-expansion-list):
* lisp/simple.el (previous-matching-history-element)
(set-variable):
* lisp/ses.el (ses-read-cell, ses-set-column-width):
* lisp/replace.el (query-replace-read-from)
(occur-read-primary-args):
* lisp/rect.el (string-rectangle, string-insert-rectangle):
* lisp/progmodes/tcl.el (tcl-help-on-word):
* lisp/progmodes/sh-script.el (sh-set-shell):
* lisp/progmodes/python.el (python-eldoc-at-point):
* lisp/progmodes/octave.el (octave-completing-read)
(octave-update-function-file-comment, octave-insert-defun):
* lisp/progmodes/inf-lisp.el (lisp-symprompt):
* lisp/progmodes/cperl-mode.el (cperl-info-on-command)
(cperl-perldoc):
* lisp/progmodes/compile.el (compilation-find-file):
* lisp/net/rcirc.el (rcirc-prompt-for-encryption):
* lisp/net/eww.el (eww):
* lisp/net/browse-url.el (browse-url-with-browser-kind):
* lisp/man.el (man):
* lisp/mail/sendmail.el (sendmail-query-user-about-smtp):
* lisp/mail/mailalias.el (build-mail-aliases):
* lisp/mail/mailabbrev.el (merge-mail-abbrevs)
(rebuild-mail-abbrevs):
* lisp/locate.el (locate-prompt-for-search-string):
* lisp/isearch.el (isearch-occur):
* lisp/international/ogonek.el (ogonek-read-encoding)
(ogonek-read-prefix):
* lisp/international/mule.el (read-buffer-file-coding-system)
(set-terminal-coding-system, set-keyboard-coding-system)
(set-next-selection-coding-system, recode-region):
* lisp/international/mule-cmds.el ()
(universal-coding-system-argument, search-unencodable-char)
(select-safe-coding-system-interactively):
* lisp/info.el (Info-search, Info-search-backward, Info-menu):
* lisp/info-look.el (info-lookup-interactive-arguments):
* lisp/imenu.el (imenu--completion-buffer):
* lisp/ibuf-ext.el (mode, used-mode, ibuffer-mark-by-mode):
* lisp/hi-lock.el (hi-lock-unface-buffer)
(hi-lock-read-face-name):
* lisp/help.el (view-emacs-news, where-is):
* lisp/help-fns.el (describe-variable, describe-symbol)
(describe-keymap):
* lisp/gnus/mm-decode.el (mm-save-part):
* lisp/gnus/gnus-sum.el (gnus-summary-browse-url):
* lisp/gnus/gnus-group.el (gnus-group--read-bug-ids)
(gnus-group-set-current-level):
* lisp/frame.el (make-frame-on-monitor)
(close-display-connection, select-frame-by-name):
* lisp/format.el (format-encode-buffer, format-encode-region):
* lisp/files.el (recode-file-name):
* lisp/files-x.el (read-file-local-variable)
(read-file-local-variable-value, )
(read-file-local-variable-mode):
* lisp/ffap.el (ffap-menu-ask):
* lisp/faces.el (face-read-string):
* lisp/facemenu.el (facemenu-set-charset):
* lisp/erc/erc-dcc.el (erc-dcc-do-GET-command):
* lisp/emulation/edt-mapper.el (edt-mapper):
* lisp/emacs-lisp/trace.el (trace--read-args)
(trace-function-foreground, trace-function-background):
* lisp/emacs-lisp/smie.el (smie-config-set-indent):
* lisp/emacs-lisp/re-builder.el (reb-change-syntax):
* lisp/emacs-lisp/package.el (describe-package):
* lisp/emacs-lisp/find-func.el (read-library-name)
(find-function-read):
* lisp/emacs-lisp/ert.el (ert-read-test-name)
(ert-run-tests-interactively):
* lisp/emacs-lisp/disass.el (disassemble):
* lisp/emacs-lisp/debug.el (debug-on-entry)
(debug-on-variable-change):
* lisp/emacs-lisp/advice.el (ad-read-advised-function)
(ad-read-advice-class, ad-read-advice-name, ad-read-regexp):
* lisp/dired-x.el (dired--mark-suffix-interactive-spec):
* lisp/dired-aux.el (dired-diff):
* lisp/cus-edit.el (custom-variable-prompt, customize-mode)
(customize-changed-options):
* lisp/completion.el (interactive-completion-string-reader):
* lisp/calendar/timeclock.el (timeclock-ask-for-project):
* lisp/calc/calcalg3.el (calc-get-fit-variables):
* lisp/calc/calc-store.el (calc-edit-variable):
* lisp/calc/calc-bin.el (calc-word-size):
* lisp/bookmark.el (bookmark-set-internal):
* lisp/abbrev.el (read-abbrev-file): Use `format-prompt' for
prompting (bug#12443).
2020-09-06 16:56:54 +02:00
Theodor Thornhill
b8b25400d5 Add sass @use rule to css-mode
* lisp/textmodes/css-mode.el (scss-at-ids): Add 'use' to scss-at-ids
for autocompletion (bug#42700).
2020-08-04 12:12:46 +02:00
Mattias Engdegård
68ae6faa7f Improved light/dark colour predicate (bug#41544)
Add a predicate, color-dark-p, for deciding whether a colour is more
readable with black or white as contrast.  It has experimentally been
shown to be more accurate and robust than the various methods
currently employed.

The new predicate compares the relative luminance of the colour to an
empirically determined cut-off value, and it seems to get it right in
almost all cases, with no value leading to outright bad results.

* lisp/faces.el (readable-foreground-color): Use color-dark-p.
(color-dark-p): New function.
* lisp/facemenu.el (list-colors-print): Use readable-foreground-color,
improving readability of list-colors-display.
* lisp/textmodes/css-mode.el (css--contrasty-color): Remove.
(css--fontify-region): Use readable-foreground-color.
2020-06-10 20:11:13 +02:00
Simen Heggestøyl
1efaa1d66b Allow underscores in CSS variable names
* lisp/textmodes/css-mode.el (css-nmchar-re): Allow underscores in
variable names (and in identifiers in general).

* test/manual/indent/css-mode.css: Add some examples of variable names
with underscores in them.

* test/manual/indent/less-css-mode.less: Add some examples of variable
names with underscores in them.

* test/manual/indent/scss-mode.scss: Add some examples of variable
names with underscores in them.
2020-05-10 14:57:22 +02:00
Simen Heggestøyl
2df2f78711 Add containment module to CSS property list
* lisp/textmodes/css-mode.el (css-property-alist): Add new properties
from CSS Containment Module Level 1.
2020-05-10 14:55:20 +02:00
Simen Heggestøyl
b7682d2a26 Add writing modes module to CSS property list
* lisp/textmodes/css-mode.el (css-property-alist): Add new properties
from the CSS Writing Modes Level 3 module.
2020-05-10 14:55:11 +02:00
Paul Eggert
365e01cc9f Update copyright year to 2020
Run "TZ=UTC0 admin/update-copyright $(git ls-files)".
2020-01-01 00:59:52 +00:00