From f4b6ffce91bcf9cd3c4ef85dd1a2b30b043c2d4d Mon Sep 17 00:00:00 2001 From: kj_sh604 Date: Sat, 18 Apr 2026 14:25:31 -0400 Subject: refactor: better concurrency and use base highlight options --- src/main.js | 219 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 219 insertions(+) (limited to 'src/main.js') diff --git a/src/main.js b/src/main.js index 1f1b755..e0a9600 100644 --- a/src/main.js +++ b/src/main.js @@ -1,5 +1,223 @@ const FORM_STATE_KEY = "kj-clipboard-form-state-v1"; +const HIGHLIGHTJS_LANGUAGES = [ + "1c", + "abnf", + "accesslog", + "actionscript", + "ada", + "angelscript", + "apache", + "applescript", + "arcade", + "arduino", + "armasm", + "xml", + "asciidoc", + "aspectj", + "autohotkey", + "autoit", + "avrasm", + "awk", + "axapta", + "bash", + "basic", + "bnf", + "brainfuck", + "c", + "cal", + "capnproto", + "ceylon", + "clean", + "clojure", + "clojure-repl", + "cmake", + "coffeescript", + "coq", + "cos", + "cpp", + "crmsh", + "crystal", + "csharp", + "csp", + "css", + "d", + "markdown", + "dart", + "delphi", + "diff", + "django", + "dns", + "dockerfile", + "dos", + "dsconfig", + "dts", + "dust", + "ebnf", + "elixir", + "elm", + "ruby", + "erb", + "erlang-repl", + "erlang", + "excel", + "fix", + "flix", + "fortran", + "fsharp", + "gams", + "gauss", + "gcode", + "gherkin", + "glsl", + "gml", + "go", + "golo", + "gradle", + "graphql", + "groovy", + "haml", + "handlebars", + "haskell", + "haxe", + "hsp", + "http", + "hy", + "inform7", + "ini", + "irpf90", + "isbl", + "java", + "javascript", + "jboss-cli", + "json", + "julia", + "julia-repl", + "kotlin", + "lasso", + "latex", + "ldif", + "leaf", + "less", + "lisp", + "livecodeserver", + "livescript", + "llvm", + "lsl", + "lua", + "makefile", + "mathematica", + "matlab", + "maxima", + "mel", + "mercury", + "mipsasm", + "mizar", + "perl", + "mojolicious", + "monkey", + "moonscript", + "n1ql", + "nestedtext", + "nginx", + "nim", + "nix", + "node-repl", + "nsis", + "objectivec", + "ocaml", + "openscad", + "oxygene", + "parser3", + "pf", + "pgsql", + "php", + "php-template", + "plaintext", + "pony", + "powershell", + "processing", + "profile", + "prolog", + "properties", + "protobuf", + "puppet", + "purebasic", + "python", + "python-repl", + "q", + "qml", + "r", + "reasonml", + "rib", + "roboconf", + "routeros", + "rsl", + "ruleslanguage", + "rust", + "sas", + "scala", + "scheme", + "scilab", + "scss", + "shell", + "smali", + "smalltalk", + "sml", + "sqf", + "sql", + "stan", + "stata", + "step21", + "stylus", + "subunit", + "swift", + "taggerscript", + "yaml", + "tap", + "tcl", + "thrift", + "tp", + "twig", + "typescript", + "vala", + "vbnet", + "vbscript", + "vbscript-html", + "verilog", + "vhdl", + "vim", + "wasm", + "wren", + "x86asm", + "xl", + "xquery", + "zephir", +]; + +function syncLanguageOptions() { + const langSelect = document.getElementById("lang-select"); + const selected = langSelect.value; + + langSelect.innerHTML = ""; + + const autoOption = document.createElement("option"); + autoOption.value = ""; + autoOption.textContent = "(auto)"; + langSelect.appendChild(autoOption); + + for (const language of HIGHLIGHTJS_LANGUAGES) { + const option = document.createElement("option"); + option.value = language; + option.textContent = language; + langSelect.appendChild(option); + } + + if (selected && HIGHLIGHTJS_LANGUAGES.includes(selected)) { + langSelect.value = selected; + } +} + function saveFormState() { const state = { content: document.getElementById("content").value, @@ -110,6 +328,7 @@ function setStatus(msg) { document.getElementById("status").textContent = msg; } +syncLanguageOptions(); restoreFormState(); document.getElementById("get-link-btn").addEventListener("click", createPaste); -- cgit v1.2.3