summaryrefslogtreecommitdiff
path: root/context/data/textadept/context/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'context/data/textadept/context/init.lua')
-rw-r--r--context/data/textadept/context/init.lua147
1 files changed, 0 insertions, 147 deletions
diff --git a/context/data/textadept/context/init.lua b/context/data/textadept/context/init.lua
deleted file mode 100644
index d5da25fc8..000000000
--- a/context/data/textadept/context/init.lua
+++ /dev/null
@@ -1,147 +0,0 @@
-local info = {
- version = 1.002,
- comment = "ini for textadept for context/metafun",
- author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
- copyright = "PRAGMA ADE / ConTeXt Development Team",
- license = "see context related readme files",
-}
-
--- Note for myself: I need to check the latest greatest textadept and also see if
--- the lpeg lexer interface has been ported to the latest scite. If not I need to
--- come up with a backup plan (vscode?).
-
-if not textadept then
- return
-end
-
--- The textadept documentation says that there can be a lexers directory under a user
--- directory but it's not in the package path. The next involved a bit or trial and
--- error in order to avoid crashes so I suppose it can be done better. If I use
--- textadept alongside scite I will make a different key binding. The code below is
--- a bit of a mess, which is a side effect of stepwise adaption combined with shared
--- iuse of code.
---
--- We use the commandline switch -u to point to the location where this file is located
--- as we then can keep it outside the program area. We also put some other files under
--- themes.
---
--- A problem is that scite needs the lexer.lua file while for textadept we don't want
--- to touch that one. So we end up with duplicate files. We cannot configure scite to
--- use an explicit lexer so both lexer paths have the same files except that the textadept
--- one has no lexer.lua there. Unfortunately themes is not requires's but always looked
--- up with an explicit path. (Maybe I should patch that.)
---
--- We are in one of:
---
--- tex/texmf-context/context/data/textadept/context
--- data/develop/context/scite/data/context/textadept
-
-package.path = table.concat ( {
- --
- _USERHOME .. "/?.lua",
- --
- _USERHOME .. "/lexers/?.lua",
- _USERHOME .. "/modules/?.lua",
- _USERHOME .. "/themes/?.lua",
- _USERHOME .. "/data/?.lua",
- --
- package.path
- --
-}, ';')
-
--- We now reset the session location to a writeable user area. We also take the opportunity
--- to increase the list.
-
-local sessionpath = os.getenv(not WIN32 and 'HOME' or 'USERPROFILE') .. '/.textadept'
-local sessionfile = not CURSES and 'session' or 'session_term'
-
-textadept.session.default_session = sessionpath .. "/" .. sessionfile
-textadept.session.save_on_quit = true
-textadept.session.max_recent_files = 25
-
--- Let's load our adapted lexer framework.
-
-require("scite-context-lexer")
-require("textadept-context-runner")
-require("textadept-context-files")
-require("scite-context-theme")
-require("textadept-context-settings")
-require("textadept-context-types")
-
--- This prevents other themes to spoil our settings.
-
--- ui.set_theme("scite-context-theme")
-buffer:set_theme("scite-context-theme")
-
--- Since version 10 there is some settings stuff in the main init file but that
--- crashes on load_settings. It has to do with the replacement of properties
--- but we already had that replaced for a while. There is some blob made that
--- gets loaded but it's not robust (should be done different I think). Anyway,
--- intercepting the two event handlers is easiest. Maybe some day I will
--- replace that init anyway (if these fundamentals keep changing between
--- versions.)
---
--- I admit that it's not a beautiful solution but it works ok and I already
--- spent too much time figuring things out anyway.
-
-local events_connect = events.connect
-
-local function events_newbuffer()
- local buffer = _G.buffer
- local SETDIRECTFUNCTION = _SCINTILLA.properties.direct_function[1]
- local SETDIRECTPOINTER = _SCINTILLA.properties.doc_pointer[2]
- local SETLUASTATE = _SCINTILLA.functions.change_lexer_state[1]
- local SETLEXERLANGUAGE = _SCINTILLA.properties.lexer_language[2]
- buffer.lexer_language = 'lpeg'
- buffer:private_lexer_call(SETDIRECTFUNCTION, buffer.direct_function)
- buffer:private_lexer_call(SETDIRECTPOINTER, buffer.direct_pointer)
- buffer:private_lexer_call(SETLUASTATE, _LUA)
- buffer.property['lexer.lpeg.home'] = _USERHOME..'/lexers/?.lua;'.. _HOME..'/lexers'
- -- load_settings()
- buffer:private_lexer_call(SETLEXERLANGUAGE, 'text')
- if buffer == ui.command_entry then
- buffer.caret_line_visible = false
- end
-end
-
--- Why these resets:
-
-local ctrl_keys = {
- '[', ']', '/', '\\', 'Z', 'Y', 'X', 'C', 'V', 'A', 'L', 'T', 'D', 'U'
-}
-
-local ctrl_shift_keys = {
- 'L', 'T', 'U', 'Z'
-}
-
-local function events_newview()
- local buffer = _G.buffer
- for i=1, #ctrl_keys do
- buffer:clear_cmd_key(string.byte(ctrl_keys[i]) | buffer.MOD_CTRL << 16)
- end
- for i=1, #ctrl_shift_keys do
- buffer:clear_cmd_key(string.byte(ctrl_shift_keys[i]) | (buffer.MOD_CTRL | buffer.MOD_SHIFT) << 16)
- end
- if #_VIEWS > 1 then
- -- load_settings()
- local SETLEXERLANGUAGE = _SCINTILLA.properties.lexer_language[2]
- buffer:private_lexer_call(SETLEXERLANGUAGE, buffer._lexer or 'text')
- end
-end
-
-events.connect = function(where,what,location)
- if location == 1 then
- if where == events.BUFFER_NEW then
- return events_connect(where,events_newbuffer,location)
- elseif where == events.VIEW_NEW then
- return events_connect(where,events_newview,location)
- end
- end
- return events_connect(where,what,location)
-end
-
-local savedrequire = require
-
-require = function(name,...)
- return savedrequire(name == "lexer" and "scite-context-lexer" or name,...)
-end