How to have a generic syntax highlighter if there isn't specifically a syntaxhighlighter/mode for it in CodeMIrror 6?

How do you set a “default” basic syntax highlighter when there isn’'t a syntax highlighter or mode for it in CodeMirror 6? I have these languages, but others are missing like dart or my own custom language, etc…

import { color } from '@uiw/codemirror-extensions-color'
import CodeMirror, {
  EditorView,
  Extension,
} from '@uiw/react-codemirror'
import { stex } from '@codemirror/legacy-modes/mode/stex'
import {
  LRLanguage,
  Language,
  LanguageSupport,
  StreamLanguage,
} from '@codemirror/language'
import { cppLanguage } from '@codemirror/lang-cpp'
import { htmlLanguage } from '@codemirror/lang-html'
import { javaLanguage } from '@codemirror/lang-java'
import { tsxLanguage, jsxLanguage } from '@codemirror/lang-javascript'
import { jsonLanguage } from '@codemirror/lang-json'
import { lezer } from '@codemirror/lang-lezer'
import { markdownLanguage } from '@codemirror/lang-markdown'
import { phpLanguage } from '@codemirror/lang-php'
import { pythonLanguage } from '@codemirror/lang-python'
import { rustLanguage } from '@codemirror/lang-rust'
import { StandardSQL } from '@codemirror/lang-sql'
import { xmlLanguage } from '@codemirror/lang-xml'
import { lessLanguage } from '@codemirror/lang-less'
import { sassLanguage } from '@codemirror/lang-sass'
import { cssLanguage } from '@codemirror/lang-css'
import { clojureLanguage } from '@nextjournal/lang-clojure'
import { csharpLanguage } from '@replit/codemirror-lang-csharp'
import { purpleTheme } from '~/values/codemirror/purple'
import { blueTheme } from '~/values/codemirror/blue'
import { brainfuckLanguage } from 'codemirror-lang-brainfuck'
import { yamlLanguage } from '@codemirror/lang-yaml'
import { wastLanguage } from '@codemirror/lang-wast'
import { lua } from '@codemirror/legacy-modes/mode/lua'
import { ruby } from '@codemirror/legacy-modes/mode/ruby'
import { cmake } from '@codemirror/legacy-modes/mode/cmake'
import { cobol } from '@codemirror/legacy-modes/mode/cobol'
import { coffeeScript } from '@codemirror/legacy-modes/mode/coffeescript'
import { commonLisp } from '@codemirror/legacy-modes/mode/commonlisp'
import { crystal } from '@codemirror/legacy-modes/mode/crystal'
import { dockerFile } from '@codemirror/legacy-modes/mode/dockerfile'
import { elm } from '@codemirror/legacy-modes/mode/elm'
import { erlang } from '@codemirror/legacy-modes/mode/erlang'
import { fortran } from '@codemirror/legacy-modes/mode/fortran'
import { gherkin } from '@codemirror/legacy-modes/mode/gherkin'
import { go } from '@codemirror/legacy-modes/mode/go'
import { haskell } from '@codemirror/legacy-modes/mode/haskell'
import { haxe } from '@codemirror/legacy-modes/mode/haxe'
import { http } from '@codemirror/legacy-modes/mode/http'
import { julia } from '@codemirror/legacy-modes/mode/julia'
import { mathematica } from '@codemirror/legacy-modes/mode/mathematica'
import { nginx } from '@codemirror/legacy-modes/mode/nginx'
import { pascal } from '@codemirror/legacy-modes/mode/pascal'
import { pegjs } from '@codemirror/legacy-modes/mode/pegjs'
import { perl } from '@codemirror/legacy-modes/mode/perl'
import { pig } from '@codemirror/legacy-modes/mode/pig'
import { powerShell } from '@codemirror/legacy-modes/mode/powershell'
import { protobuf } from '@codemirror/legacy-modes/mode/protobuf'
import { puppet } from '@codemirror/legacy-modes/mode/puppet'
import { r } from '@codemirror/legacy-modes/mode/r'
import { scheme } from '@codemirror/legacy-modes/mode/scheme'
import { shell } from '@codemirror/legacy-modes/mode/shell'
import { smalltalk } from '@codemirror/legacy-modes/mode/smalltalk'
import { sparql } from '@codemirror/legacy-modes/mode/sparql'
import { swift } from '@codemirror/legacy-modes/mode/swift'
import { textile } from '@codemirror/legacy-modes/mode/textile'
import { toml } from '@codemirror/legacy-modes/mode/toml'
import { vb } from '@codemirror/legacy-modes/mode/vb'
import { vbScript } from '@codemirror/legacy-modes/mode/vbscript'
import { verilog } from '@codemirror/legacy-modes/mode/verilog'

export type TextEditorLanguage =
  | 'javascript'
  | 'typescript'
  | 'cpp'
  | 'html'
  | 'java'
  | 'markdown'
  | 'php'
  | 'python'
  | 'rust'
  | 'sql'
  | 'xml'
  | 'less'
  | 'sass'
  | 'clojure'
  | 'csharp'
  | 'json'
  | 'latex'
  | 'brainfuck'
  | 'css'
  | 'yaml'
  | 'wast'
  | 'lua'
  | 'ruby'
  | 'cmake'
  | 'cobol'
  | 'coffeescript'
  | 'common-lisp'
  | 'crystal'
  | 'dockerfile'
  | 'elm'
  | 'erlang'
  | 'fortran'
  | 'gherkin'
  | 'go'
  | 'haskell'
  | 'haxe'
  | 'http'
  | 'julia'
  | 'mathematica'
  | 'nginx'
  | 'pascal'
  | 'pegjs'
  | 'perl'
  | 'pig'
  | 'powershell'
  | 'protobuf'
  | 'puppet'
  | 'r'
  | 'scheme'
  | 'shell'
  | 'smalltalk'
  | 'sparql'
  | 'swift'
  | 'textile'
  | 'toml'
  | 'vb'
  | 'vbscript'
  | 'verilog'

export const TEXT_EDITOR_LANGUAGE: Record<
  TextEditorLanguage,
  LanguageSupport | StreamLanguage<any> | LRLanguage | Language
> = {
  wast: wastLanguage,
  yaml: yamlLanguage,
  css: cssLanguage,
  javascript: jsxLanguage,
  typescript: tsxLanguage,
  cpp: cppLanguage,
  html: htmlLanguage,
  java: javaLanguage,
  markdown: markdownLanguage,
  php: phpLanguage,
  python: pythonLanguage,
  rust: rustLanguage,
  sql: StandardSQL.language,
  xml: xmlLanguage,
  less: lessLanguage,
  sass: sassLanguage,
  clojure: clojureLanguage,
  csharp: csharpLanguage,
  json: jsonLanguage,
  brainfuck: brainfuckLanguage,
  // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
  latex: StreamLanguage.define(stex),
  lua: StreamLanguage.define(lua),
  ruby: StreamLanguage.define(ruby),
  cmake: StreamLanguage.define(cmake),
  cobol: StreamLanguage.define(cobol),
  coffeescript: StreamLanguage.define(coffeeScript),
  'common-lisp': StreamLanguage.define(commonLisp),
  crystal: StreamLanguage.define(crystal),
  dockerfile: StreamLanguage.define(dockerFile),
  elm: StreamLanguage.define(elm),
  erlang: StreamLanguage.define(erlang),
  fortran: StreamLanguage.define(fortran),
  gherkin: StreamLanguage.define(gherkin),
  go: StreamLanguage.define(go),
  haskell: StreamLanguage.define(haskell),
  haxe: StreamLanguage.define(haxe),
  http: StreamLanguage.define(http),
  julia: StreamLanguage.define(julia),
  mathematica: StreamLanguage.define(mathematica),
  nginx: StreamLanguage.define(nginx),
  pascal: StreamLanguage.define(pascal),
  pegjs: StreamLanguage.define(pegjs),
  perl: StreamLanguage.define(perl),
  pig: StreamLanguage.define(pig),
  powershell: StreamLanguage.define(powerShell),
  protobuf: StreamLanguage.define(protobuf),
  puppet: StreamLanguage.define(puppet),
  r: StreamLanguage.define(r),
  scheme: StreamLanguage.define(scheme),
  shell: StreamLanguage.define(shell),
  smalltalk: StreamLanguage.define(smalltalk),
  sparql: StreamLanguage.define(sparql),
  swift: StreamLanguage.define(swift),
  textile: StreamLanguage.define(textile),
  toml: StreamLanguage.define(toml),
  vb: StreamLanguage.define(vb),
  vbscript: StreamLanguage.define(vbScript),
  verilog: StreamLanguage.define(verilog),
}

There’s no such thing as a ‘default’ highlighter.

What does StackOverflow do for syntax highlighting then, given there is no annotation of the language?

Probably uses a language detector