From 95cf1151e425a93f9f39b7268b510cf5fb756547 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Tue, 18 Oct 2022 15:11:16 +0200 Subject: [PATCH] fix: added new @.. default links. Fixes #250 --- lua/tokyonight/treesitter.lua | 287 +++++++++++++++++++++++++++++++++- lua/tokyonight/util.lua | 4 + 2 files changed, 290 insertions(+), 1 deletion(-) diff --git a/lua/tokyonight/treesitter.lua b/lua/tokyonight/treesitter.lua index 79824ad..4834afd 100644 --- a/lua/tokyonight/treesitter.lua +++ b/lua/tokyonight/treesitter.lua @@ -1,7 +1,12 @@ local M = {} +function M.new_style() + ---@diagnostic disable-next-line: undefined-field + return vim.treesitter.highlighter.hl_map == nil +end + function M.get(group) - if group:sub(1, 1) ~= "@" or not vim.treesitter.highlighter.hl_map then + if group:sub(1, 1) ~= "@" or M.new_style() then return group end @@ -125,4 +130,284 @@ M.fallbacks = { ["variable.builtin"] = "TSVariableBuiltin", } +M.defaults = { + ["@annotation"] = { + default = true, + link = "PreProc", + }, + ["@attribute"] = { + default = true, + link = "PreProc", + }, + ["@boolean"] = { + default = true, + link = "Boolean", + }, + ["@character"] = { + default = true, + link = "Character", + }, + ["@character.special"] = { + default = true, + link = "SpecialChar", + }, + ["@comment"] = { + default = true, + link = "Comment", + }, + ["@conditional"] = { + default = true, + link = "Conditional", + }, + ["@constant"] = { + default = true, + link = "Constant", + }, + ["@constant.builtin"] = { + default = true, + link = "Special", + }, + ["@constant.macro"] = { + default = true, + link = "Define", + }, + ["@constructor"] = { + default = true, + link = "Special", + }, + ["@debug"] = { + default = true, + link = "Debug", + }, + ["@define"] = { + default = true, + link = "Define", + }, + ["@exception"] = { + default = true, + link = "Exception", + }, + ["@field"] = { + default = true, + link = "Identifier", + }, + ["@float"] = { + default = true, + link = "Float", + }, + ["@function"] = { + default = true, + link = "Function", + }, + ["@function.builtin"] = { + default = true, + link = "Special", + }, + ["@function.call"] = { + default = true, + link = "TSFunction", + }, + ["@function.macro"] = { + default = true, + link = "Macro", + }, + ["@include"] = { + default = true, + link = "Include", + }, + ["@keyword"] = { + default = true, + link = "Keyword", + }, + ["@keyword.function"] = { + default = true, + link = "Keyword", + }, + ["@keyword.operator"] = { + default = true, + link = "TSOperator", + }, + ["@keyword.return"] = { + default = true, + link = "TSKeyword", + }, + ["@label"] = { + default = true, + link = "Label", + }, + ["@method"] = { + default = true, + link = "Function", + }, + ["@method.call"] = { + default = true, + link = "TSMethod", + }, + ["@namespace"] = { + default = true, + link = "Include", + }, + ["@none"] = { + default = true, + }, + ["@number"] = { + default = true, + link = "Number", + }, + ["@operator"] = { + default = true, + link = "Operator", + }, + ["@parameter"] = { + default = true, + link = "Identifier", + }, + ["@parameter.reference"] = { + default = true, + link = "TSParameter", + }, + ["@preproc"] = { + default = true, + link = "PreProc", + }, + ["@property"] = { + default = true, + link = "Identifier", + }, + ["@punctuation.bracket"] = { + default = true, + link = "Delimiter", + }, + ["@punctuation.delimiter"] = { + default = true, + link = "Delimiter", + }, + ["@punctuation.special"] = { + default = true, + link = "Delimiter", + }, + ["@repeat"] = { + default = true, + link = "Repeat", + }, + ["@storageclass"] = { + default = true, + link = "StorageClass", + }, + ["@string"] = { + default = true, + link = "String", + }, + ["@string.escape"] = { + default = true, + link = "SpecialChar", + }, + ["@string.regex"] = { + default = true, + link = "String", + }, + ["@string.special"] = { + default = true, + link = "SpecialChar", + }, + ["@symbol"] = { + default = true, + link = "Identifier", + }, + ["@tag"] = { + default = true, + link = "Label", + }, + ["@tag.attribute"] = { + default = true, + link = "TSProperty", + }, + ["@tag.delimiter"] = { + default = true, + link = "Delimiter", + }, + ["@text"] = { + default = true, + link = "TSNone", + }, + ["@text.danger"] = { + default = true, + link = "WarningMsg", + }, + ["@text.emphasis"] = { + default = true, + italic = true, + }, + ["@text.environment"] = { + default = true, + link = "Macro", + }, + ["@text.environment.name"] = { + default = true, + link = "Type", + }, + ["@text.literal"] = { + default = true, + link = "String", + }, + ["@text.math"] = { + default = true, + link = "Special", + }, + ["@text.note"] = { + default = true, + link = "SpecialComment", + }, + ["@text.reference"] = { + default = true, + link = "Constant", + }, + ["@text.strike"] = { + strikethrough = true, + }, + ["@text.strong"] = { + bold = true, + default = true, + }, + ["@text.title"] = { + default = true, + link = "Title", + }, + ["@text.underline"] = { + underline = true, + }, + ["@text.uri"] = { + default = true, + link = "Underlined", + }, + ["@text.warning"] = { + default = true, + link = "Todo", + }, + ["@todo"] = { + default = true, + link = "Todo", + }, + ["@type"] = { + default = true, + link = "Type", + }, + ["@type.builtin"] = { + default = true, + link = "Type", + }, + ["@type.definition"] = { + default = true, + link = "Typedef", + }, + ["@type.qualifier"] = { + default = true, + link = "Type", + }, + ["@variable.builtin"] = { + default = true, + link = "Special", + }, +} + return M diff --git a/lua/tokyonight/util.lua b/lua/tokyonight/util.lua index 98e8b86..de15750 100644 --- a/lua/tokyonight/util.lua +++ b/lua/tokyonight/util.lua @@ -178,6 +178,10 @@ function M.load(theme) vim.o.termguicolors = true vim.g.colors_name = "tokyonight" + if ts.new_style() then + M.syntax(ts.defaults) + end + M.syntax(theme.highlights) -- vim.api.nvim_set_hl_ns(M.ns)