feat(editor): add Kotlin (.kt/.kts) syntax highlighting
Map .kt/.kts to the built-in kotlin StreamLanguage from @codemirror/legacy-modes/mode/clike (no new dependencies).
This commit is contained in:
+3
-1
@@ -23,7 +23,7 @@ import { toml } from '@codemirror/legacy-modes/mode/toml'
|
|||||||
import { nginx } from '@codemirror/legacy-modes/mode/nginx'
|
import { nginx } from '@codemirror/legacy-modes/mode/nginx'
|
||||||
import { dockerFile } from '@codemirror/legacy-modes/mode/dockerfile'
|
import { dockerFile } from '@codemirror/legacy-modes/mode/dockerfile'
|
||||||
import { properties } from '@codemirror/legacy-modes/mode/properties'
|
import { properties } from '@codemirror/legacy-modes/mode/properties'
|
||||||
import { csharp } from '@codemirror/legacy-modes/mode/clike'
|
import { csharp, kotlin } from '@codemirror/legacy-modes/mode/clike'
|
||||||
|
|
||||||
/** The lowercased file extension of a path ('' when none). */
|
/** The lowercased file extension of a path ('' when none). */
|
||||||
export function extOf(path: string): string {
|
export function extOf(path: string): string {
|
||||||
@@ -50,6 +50,7 @@ export function languageKeyForExt(ext: string): string | null {
|
|||||||
case 'sql': return 'sql'
|
case 'sql': return 'sql'
|
||||||
case 'java': return 'java'
|
case 'java': return 'java'
|
||||||
case 'cs': return 'csharp'
|
case 'cs': return 'csharp'
|
||||||
|
case 'kt': case 'kts': return 'kotlin'
|
||||||
case 'c': case 'h': return 'c'
|
case 'c': case 'h': return 'c'
|
||||||
case 'cc': case 'cpp': case 'cxx': case 'hpp': case 'hh': case 'hxx': return 'cpp'
|
case 'cc': case 'cpp': case 'cxx': case 'hpp': case 'hh': case 'hxx': return 'cpp'
|
||||||
case 'rs': return 'rust'
|
case 'rs': return 'rust'
|
||||||
@@ -79,6 +80,7 @@ const FACTORIES: Record<string, () => Language | LanguageSupport> = {
|
|||||||
sql: () => sql(),
|
sql: () => sql(),
|
||||||
java: () => java(),
|
java: () => java(),
|
||||||
csharp: () => StreamLanguage.define(csharp),
|
csharp: () => StreamLanguage.define(csharp),
|
||||||
|
kotlin: () => StreamLanguage.define(kotlin),
|
||||||
c: () => cpp(),
|
c: () => cpp(),
|
||||||
cpp: () => cpp(),
|
cpp: () => cpp(),
|
||||||
rust: () => rust(),
|
rust: () => rust(),
|
||||||
|
|||||||
@@ -1103,6 +1103,7 @@ describe('editor language mapping', () => {
|
|||||||
expect(languageKeyForExt('sh')).toBe('shell')
|
expect(languageKeyForExt('sh')).toBe('shell')
|
||||||
expect(languageKeyForExt('md')).toBe('md')
|
expect(languageKeyForExt('md')).toBe('md')
|
||||||
expect(languageKeyForExt('cs')).toBe('csharp')
|
expect(languageKeyForExt('cs')).toBe('csharp')
|
||||||
|
expect(languageKeyForExt('kt')).toBe('kotlin')
|
||||||
expect(languageKeyForExt('txt')).toBeNull()
|
expect(languageKeyForExt('txt')).toBeNull()
|
||||||
expect(languageKeyForExt('log')).toBeNull()
|
expect(languageKeyForExt('log')).toBeNull()
|
||||||
expect(languageKeyForExt('')).toBeNull()
|
expect(languageKeyForExt('')).toBeNull()
|
||||||
|
|||||||
Reference in New Issue
Block a user