L
lingcoder
↓ 0 downloadsLingCoder: a Geany / VS Code-style IDE for Ling, written in Ling. Explorer, tabs, syntax-coloured editor with lint, find in files, command palette, run/build panel, and hot-reloaded extensions - including a Claude assistant.
Keywords ide, editor, ling, claude, extensions
lingfu install lingcoderCode / Files (34)
ling/theme.ling
# theme.ling - LingCoder colours and layout: the LingStationX egui-dark chrome with the ROYGBIV
# keys, plus the Ling Dark editor scheme from editors/vscode-ling. Colours are packed numbers
# (r*65536 + g*256 + b).
bind MENU_H = 24.0
bind TABS_H = 30.0
bind STATUS_H = 22.0
bind ACT_W = 44.0
# ── chrome (shared with LingStationX / LingModeler / LingDev) ─────────────────
bind C_BG_APP = 1776411.0 # 27,27,27
bind C_BG_PANEL = 1776411.0 # 27,27,27
bind C_BG_DEEP = 657930.0 # 10,10,10
bind C_BG_SIDE = 1447706.0 # 22,23,26
bind C_LINE = 3947580.0 # 60,60,60
bind C_LINE_SOFT = 2763826.0 # 42,44,50
bind C_TEXT = 13488344.0 # 205,208,216
bind C_TEXT_DIM = 9212056.0 # 140,144,152
bind C_TEXT_STRONG = 16119285.0 # 245,245,245
bind C_BTN = 3947580.0 # 60,60,60
bind C_BTN_HOV = 4868682.0 # 74,74,74
bind C_BTN_ACT = 2960685.0 # 45,45,45
bind C_SEL = 23680.0 # 0,92,128
bind C_SEL_ROW = 2503756.0 # 38,52,76
bind C_HOVER_ROW = 1975340.0 # 30,36,44
bind C_RULER = 1184792.0 # 18,20,24
bind C_HDR_LINE = 1842722.0 # 28,30,34
bind C_POPUP = 1973794.0 # 30,30,34
bind C_POPUP_LINE = 4605518.0 # 70,70,78
bind C_WHITE = 16777215.0
# ── ROYGBIV keys ──────────────────────────────────────────────────────────────
bind C_RED = 15551031.0 # 237,74,55
bind C_ORANGE = 16225310.0 # 247,148,30
bind C_YELLOW = 16242758.0 # 247,216,70
bind C_GREEN = 4573296.0 # 69,200,112
bind C_BLUE = 3910379.0 # 59,170,235
bind C_INDIGO = 4875480.0 # 74,100,216
bind C_VIOLET = 10114006.0 # 154,83,214
# menu titles: File Edit View Go Run Tools Help
bind C_MENU_FILE = 15417396.0 # 235,64,52
bind C_MENU_EDIT = 16747560.0 # 255,140,40
bind C_MENU_VIEW = 16108870.0 # 245,205,70
bind C_MENU_GO = 5294200.0 # 80,200,120
bind C_MENU_RUN = 3910379.0 # 59,170,235
bind C_MENU_TOOLS = 4875480.0 # 74,100,216
bind C_MENU_HELP = 7885010.0 # 120,80,210
bind C_FOLDER = 7247615.0 # 110,150,255
bind C_FILEICON = 7915660.0 # 120,200,140
# ── the editor: Ling Dark (editors/vscode-ling/themes/ling-dark-color-theme.json) ─
bind E_BG = 329485.0 # 5,7,13 #05070D
bind E_BG_GUTTER = 329485.0 # 5,7,13
bind E_CURLINE = 856607.0 # 13,18,31 #0D121F
bind E_LINENUM = 2833751.0 # 43,58,87 #2B3A57
bind E_LINENUM_CUR = 9873095.0 # 150,166,199 #96A6C7
bind E_CURSOR = 16769076.0 # 255,224,52 #FFE034
bind E_SELECT = 16769076.0 # selection tint (drawn at low alpha)
bind E_FIND = 16225310.0 # find-match tint (orange)
bind E_WS = 1712952.0 # 26,35,56 #1A2338 (indent guides)
bind E_TEXT = 13489893.0 # 205,214,229 #CDD6E5
bind E_KEYWORD = 16769076.0 # 255,224,52 #FFE034
bind E_TYPE = 16769076.0 # types share the keyword yellow
bind E_FUNC = 16717636.0 # 255,23,68 #FF1744 (builtins + calls)
bind E_STRING = 54527.0 # 0,212,255 #00D4FF
bind E_NUMBER = 3116287.0 # 47,140,255 #2F8CFF
bind E_COMMENT = 9873095.0 # 150,166,199 #96A6C7
bind E_OPER = 9873095.0 # operators, punctuation
bind E_CONST = 3116287.0 # true/false/ok/bad
bind E_ERROR = 16717636.0 # #FF1744
bind E_WARN = 16769076.0 # #FFE034
bind E_INFO = 54527.0 # #00D4FF
# menu colour by index
fn menu_color(i) {
if i < 0.5 { return C_MENU_FILE }
if i < 1.5 { return C_MENU_EDIT }
if i < 2.5 { return C_MENU_VIEW }
if i < 3.5 { return C_MENU_GO }
if i < 4.5 { return C_MENU_RUN }
if i < 5.5 { return C_MENU_TOOLS }
return C_MENU_HELP
}
# ROYGBIV by index (tabs, extension rows)
fn c_pal(i) {
bind k = floor(i) % 7.0
if k < 0.5 { return C_RED }
if k < 1.5 { return C_ORANGE }
if k < 2.5 { return C_YELLOW }
if k < 3.5 { return C_GREEN }
if k < 4.5 { return C_BLUE }
if k < 5.5 { return C_INDIGO }
return C_VIOLET
}
# file-type colour (explorer rows, tab dots, picker)
fn ext_col(e) {
if e == "ling" || e == "灵" || e == "령" || e == "霊" || e == "ลิง" { return C_YELLOW }
if e == "toml" { return C_ORANGE }
if e == "md" || e == "txt" { return C_TEXT }
if e == "lscene" || e == "lcut" { return C_GREEN }
if e == "lmesh" || e == "glb" || e == "gltf" { return C_ORANGE }
if e == "json" { return C_INDIGO }
if e == "rs" { return C_RED }
if e == "png" || e == "jpg" || e == "jpeg" || e == "bmp" || e == "svg" || e == "ico" { return C_VIOLET }
if e == "wav" || e == "ogg" || e == "mp3" || e == "flac" || e == "mid" { return C_INDIGO }
if e == "bat" || e == "sh" || e == "cmd" { return C_GREEN }
if e == "ignore" || e == "log" { return C_TEXT_DIM }
return C_FILEICON
}
fn ext_icon(e) {
if e == "ling" || e == "灵" || e == "령" || e == "霊" || e == "ลิง" { return "script" }
if e == "toml" { return "gear" }
if e == "md" || e == "txt" || e == "log" { return "text" }
if e == "lscene" || e == "lcut" { return "scene" }
if e == "lmesh" || e == "glb" || e == "gltf" { return "cube" }
if e == "png" || e == "jpg" || e == "jpeg" || e == "bmp" || e == "svg" || e == "ico" { return "image" }
if e == "wav" || e == "ogg" || e == "mp3" || e == "flac" || e == "mid" { return "audio" }
if e == "bat" || e == "sh" || e == "cmd" { return "terminal" }
return "file"
}