aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/core/doc/init.lua3
-rw-r--r--data/core/syntax.lua11
-rw-r--r--data/plugins/language_lua.lua1
-rw-r--r--data/plugins/language_python.lua1
-rw-r--r--data/plugins/language_xml.lua1
-rw-r--r--src/main.c4
6 files changed, 14 insertions, 7 deletions
diff --git a/data/core/doc/init.lua b/data/core/doc/init.lua
index bb09ce2b..83b5fc01 100644
--- a/data/core/doc/init.lua
+++ b/data/core/doc/init.lua
@@ -56,7 +56,8 @@ end
function Doc:reset_syntax()
- local syn = syntax.get(self.filename or "")
+ local header = self:get_text(1, 1, self:position_offset(1, 1, 128))
+ local syn = syntax.get(self.filename or "", header)
if self.syntax ~= syn then
self.syntax = syn
self.highlighter:reset()
diff --git a/data/core/syntax.lua b/data/core/syntax.lua
index fe8cc862..a763ac78 100644
--- a/data/core/syntax.lua
+++ b/data/core/syntax.lua
@@ -11,14 +11,19 @@ function syntax.add(t)
end
-function syntax.get(filename)
+local function find(string, field)
for i = #syntax.items, 1, -1 do
local t = syntax.items[i]
- if common.match_pattern(filename, t.files) then
+ if common.match_pattern(string, t[field] or {}) then
return t
end
end
- return plain_text_syntax
+end
+
+function syntax.get(filename, header)
+ return find(filename, "files")
+ or find(header, "headers")
+ or plain_text_syntax
end
diff --git a/data/plugins/language_lua.lua b/data/plugins/language_lua.lua
index 79e2fce0..c577a28f 100644
--- a/data/plugins/language_lua.lua
+++ b/data/plugins/language_lua.lua
@@ -2,6 +2,7 @@ local syntax = require "core.syntax"
syntax.add {
files = "%.lua$",
+ headers = "^#!.*[ /]lua",
comment = "--",
patterns = {
{ pattern = { '"', '"', '\\' }, type = "string" },
diff --git a/data/plugins/language_python.lua b/data/plugins/language_python.lua
index ef79f234..4a6ada33 100644
--- a/data/plugins/language_python.lua
+++ b/data/plugins/language_python.lua
@@ -2,6 +2,7 @@ local syntax = require "core.syntax"
syntax.add {
files = "%.py$",
+ headers = "^#!.*[ /]python",
comment = "#",
patterns = {
{ pattern = { "#", "\n" }, type = "comment" },
diff --git a/data/plugins/language_xml.lua b/data/plugins/language_xml.lua
index 9400e778..5240bdc4 100644
--- a/data/plugins/language_xml.lua
+++ b/data/plugins/language_xml.lua
@@ -2,6 +2,7 @@ local syntax = require "core.syntax"
syntax.add {
files = { "%.xml$", "%.html?$" },
+ headers = "<%?xml",
patterns = {
{ pattern = { "<!%-%-", "%-%->" }, type = "comment" },
{ pattern = { '%f[^>][^<]', '%f[<]' }, type = "normal" },
diff --git a/src/main.c b/src/main.c
index abafd2bb..cf9baa13 100644
--- a/src/main.c
+++ b/src/main.c
@@ -7,8 +7,6 @@
#include <windows.h>
#elif __linux__
#include <unistd.h>
-#elif __APPLE__
- #include <mach-o/dyld.h>
#endif
@@ -102,7 +100,7 @@ int main(int argc, char **argv) {
}
lua_setglobal(L, "ARGS");
- lua_pushstring(L, "1.06");
+ lua_pushstring(L, "1.07");
lua_setglobal(L, "VERSION");
lua_pushstring(L, SDL_GetPlatform());