diff --git a/l4d2web/l4d2web/static/css/console-autocomplete.css b/l4d2web/l4d2web/static/css/console-autocomplete.css index 46621c4..b121c88 100644 --- a/l4d2web/l4d2web/static/css/console-autocomplete.css +++ b/l4d2web/l4d2web/static/css/console-autocomplete.css @@ -46,6 +46,10 @@ color: var(--cm-string, #ce9178); } +.console-autocomplete-row.kind-sourcemod .console-autocomplete-name { + color: var(--cm-number, #884488); +} + .console-autocomplete-desc { color: var(--color-muted, #888); font-size: 0.9em; diff --git a/l4d2web/l4d2web/static/js/console-autocomplete.js b/l4d2web/l4d2web/static/js/console-autocomplete.js index 644fe5b..739ea8d 100644 --- a/l4d2web/l4d2web/static/js/console-autocomplete.js +++ b/l4d2web/l4d2web/static/js/console-autocomplete.js @@ -118,7 +118,12 @@ function bindConsoleAutocomplete(form) { if (items.length === 0) { close(); return; } const rows = items.slice(0, MAX_RENDERED).map((e, i) => { const selected = i === highlightIdx ? " aria-selected='true'" : ""; - const kindClass = e.kind === "command" ? "kind-command" : "kind-cvar"; + // SourceMod commands (sm_*) get a distinct class so the user + // can see at a glance that the command depends on a plugin + // being loaded on the target server. + const kindClass = e.kind === "command" + ? (e.name.startsWith("sm_") ? "kind-sourcemod" : "kind-command") + : "kind-cvar"; const desc = e.desc ? `${escapeHtml(e.desc)}` : ""; return `
${escapeHtml(e.name)}${desc}
`; }).join("");