灵符lingfu
L

lingcoder

↓ 0 downloads

LingCoder: 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 lingcoder
LicenseApache-2.0 OR MIT
Authorsling-lin
READMECode / FilesVersionsDependency GraphDependentsSecurityBuildsSettings

Code / 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"
}

← Back to index