add textadept config

This commit is contained in:
Nico 2022-01-21 23:23:55 +00:00
parent 010352ab33
commit eec26e2dd9
5 changed files with 5363 additions and 0 deletions

View File

@ -0,0 +1,29 @@
(var fennel (include "fennel"))
;; config stuff
(view:set_theme "base16-tomorrow-night" {:font "Fantasque Sans Mono" :size 14})
(set view.wrap_mode view.WRAP_WORD)
;; add uxntal lexer
(tset textadept.file_types.extensions "tal" "uxntal")
;; extensions!
;; markdown link matching pattern
(var markdown-link "%[[^%]]+%]%(([^%)]+)%)")
;; zettel link matching pattern
(var zettel-link "%[%[([^%]]+)%]%]")
(fn _G.follow-link []
"opens the file (in a new tab) of the markdown or zettelkasten link under the cursor"
(let [(line cpos) (buffer.get_cur_line)
md (line:match markdown-link)
zettel (line:match zettel-link)
dir (string.match buffer.filename "(.+)/.+%..+" )]
(if
(not= md nil) (io.open_file (.. dir "/" md))
(not= zettel nil) (io.open_file (.. dir "/" zettel)))))
(tset textadept.menu.context_menu (+ 1 (length textadept.menu.context_menu))
["Follow Link" _G.follow-link])

View File

@ -0,0 +1,4 @@
local fennel = require("fennel")
fennel.path = "/home/nico/.textadept/?.fnl"
table.insert(package.loaders or package.searchers, fennel.searcher)
local config = require("config")

View File

@ -0,0 +1,45 @@
-- uxntal LPeg lexer.
local lexer = require('lexer')
local token, word_match = lexer.token, lexer.word_match
local P, S = lpeg.P, lpeg.S
local lex = lexer.new('uxntal')
-- opcodes
local words =
P("BRK") + P("LIT") + P("INC") + P("POP") +
P("DUP") + P("NIP") + P("SWP") + P("OVR") +
P("ROT") + P("EQU") + P("NEQ") + P("GTH") +
P("LTH") + P("JMP") + P("JCN") + P("JSR") +
P("STH") + P("LDZ") + P("STZ") + P("LDR") +
P("STR") + P("LDA") + P("STA") + P("DEI") +
P("DEO") + P("ADD") + P("SUB") + P("MUL") +
P("DIV") + P("AND") + P("ORA") + P("EOR") +
P("SFT")
lex:add_rule('keyword', token(lexer.KEYWORD, words * S(" rk2")^-3))
-- numbers
lex:add_rule('number', token(lexer.NUMBER, S("$#") * lexer.xdigit^1))
-- comments
local comment = token(lexer.COMMENT, lexer.range('( ', ' )'))
lex:add_rule('comment', comment)
-- address references
local ref = token(lexer.IDENTIFIER, S(";.,") * (lexer.word + S('&/-_'))^1)
lex:add_rule('reference', ref)
-- labels
local label = token(lexer.LABEL, S("@&") * (lexer.word + S('&/-_'))^1)
lex:add_rule('label', label)
return lex

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,112 @@
-- Base16 Theme: Tomorrow Night
-- http://chriskempson.com/projects/base16/
-- Theme author: Chris Kempson (http://chriskempson.com)
-- Template Repository: https://github.com/rgieseke/base16-textadept
-- Template adapted from Textadept's default templates
-- Copyright 2007-2020 Mitchell mitchell.att.foicica.com. MIT licensed.
local view, colors, styles = view, lexer.colors, lexer.styles
-- Base16 colors
colors.base00 = 0x211f1d
colors.base01 = 0x2e2a28
colors.base02 = 0x413b37
colors.base03 = 0x969896
colors.base04 = 0xb4b7b4
colors.base05 = 0xc6c8c5
colors.base06 = 0xe0e0e0
colors.base07 = 0xffffff
colors.base08 = 0x6666cc
colors.base09 = 0x5f93de
colors.base0A = 0x74c6f0
colors.base0B = 0x68bdb5
colors.base0C = 0xb7be8a
colors.base0D = 0xbea281
colors.base0E = 0xbb94b2
colors.base0F = 0x5a68a3
-- Default font.
if not font then
font = WIN32 and 'Courier New' or OSX and 'Monaco' or
'Bitstream Vera Sans Mono'
end
if not size then size = not OSX and 10 or 12 end
-- Predefined styles.
styles.default = {
font = font, size = size, fore = colors.base05, back = colors.base00
}
styles.line_number = {fore = colors.base04, back = colors.base00}
--styles.control_char =
styles.indent_guide = {fore = colors.base03}
styles.call_tip = {fore = colors.base04, back = colors.base01}
styles.fold_display_text = {fore = colors.base01}
-- Token styles.
styles.class = {fore = colors.base0A}
styles.comment = {fore = colors.base03}
styles.constant = {fore = colors.base09}
styles.embedded = {fore = colors.base0F, back = colors.base01}
styles.error = {fore = colors.base08, italics = true}
styles['function'] = {fore = colors.base0D}
styles.identifier = {}
styles.keyword = {fore = colors.base0E}
styles.label = {fore = colors.base08}
styles.number = {fore = colors.base09}
styles.operator = {fore = colors.base05}
styles.preprocessor = {fore = colors.base0B}
styles.regex = {fore = colors.base0C}
styles.string = {fore = colors.base0B}
styles.type = {fore = colors.base0A}
styles.variable = {fore = colors.base08}
styles.whitespace = {}
-- Multiple Selection and Virtual Space
--view.additional_sel_alpha =
--view.additional_sel_fore =
--view.additional_sel_back =
--view.additional_caret_fore =
-- Caret and Selection Styles.
view:set_sel_fore(true, colors.base06)
view:set_sel_back(true, colors.base02)
--view.sel_alpha =
view.caret_fore = colors.base05
view.caret_line_back = colors.base01
--view.caret_line_back_alpha =
-- Fold Margin.
view:set_fold_margin_color(true, colors.base00)
view:set_fold_margin_hi_color(true, colors.base00)
-- Markers.
--view.marker_fore[textadept.bookmarks.MARK_BOOKMARK] = colors.base00
view.marker_back[textadept.bookmarks.MARK_BOOKMARK] = colors.base0B
--view.marker_fore[textadept.run.MARK_WARNING] = colors.base00
view.marker_back[textadept.run.MARK_WARNING] = colors.base0E
--view.marker_fore[textadept.run.MARK_ERROR] = colors.base00
view.marker_back[textadept.run.MARK_ERROR] = colors.base08
for i = view.MARKNUM_FOLDEREND, view.MARKNUM_FOLDEROPEN do -- fold margin
view.marker_fore[i] = colors.base00
view.marker_back[i] = colors.base03
view.marker_back_selected[i] = colors.base02
end
-- Indicators.
view.indic_fore[ui.find.INDIC_FIND] = colors.base09
view.indic_alpha[ui.find.INDIC_FIND] = 255
view.indic_fore[textadept.editing.INDIC_BRACEMATCH] = colors.base06
view.indic_fore[textadept.editing.INDIC_HIGHLIGHT] = colors.base07
view.indic_alpha[textadept.editing.INDIC_HIGHLIGHT] = 64
view.indic_fore[textadept.snippets.INDIC_PLACEHOLDER] = colors.base04
-- Call tips.
view.call_tip_fore_hlt = colors.base06
-- Long Lines.
view.edge_color = colors.base02
-- Add red, green, and yellow for diff lexer.
colors.red = colors.base08
colors.green = colors.base0B
colors.yellow = colors.base0E