From a5e3d9757ea06ef13b4eb7913c5d0875dd18e138 Mon Sep 17 00:00:00 2001 From: Guldoman Date: Fri, 9 Jun 2023 15:31:59 +0200 Subject: [PATCH] Revert "core syntax: strip the path from filename on syntax.get (#1168)" (#1322) * Revert "core syntax: strip the path from filename on syntax.get (#1168)" This reverts commit af6c4bc152234e13f3e12819e361e1b92a387013. The previous behavior was correct and allowed access to the full path for path-dependant syntaxes. * Use `Doc.abs_filename` to obtain syntax when possible This allows matching full paths in language syntaxes, but we lose the possibility of matching the project root. --- data/core/doc/init.lua | 7 ++++++- data/core/syntax.lua | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/data/core/doc/init.lua b/data/core/doc/init.lua index 74116fd5..572b2d78 100644 --- a/data/core/doc/init.lua +++ b/data/core/doc/init.lua @@ -44,7 +44,12 @@ end function Doc:reset_syntax() local header = self:get_text(1, 1, self:position_offset(1, 1, 128)) - local syn = syntax.get(self.filename or "", header) + local path = self.abs_filename + if not path and self.filename then + path = core.project_dir .. PATHSEP .. self.filename + end + if path then path = common.normalize_path(path) end + local syn = syntax.get(path or "", header) if self.syntax ~= syn then self.syntax = syn self.highlighter:soft_reset() diff --git a/data/core/syntax.lua b/data/core/syntax.lua index 6fe8984a..977983c1 100644 --- a/data/core/syntax.lua +++ b/data/core/syntax.lua @@ -44,7 +44,7 @@ local function find(string, field) end function syntax.get(filename, header) - return find(common.basename(filename), "files") + return find(filename, "files") or (header and find(header, "headers")) or plain_text_syntax end