una-editor 0.3.0 → 0.4.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.en.md +35 -2
  2. package/README.md +35 -2
  3. package/dist/clike-BKuxyWF6.cjs +1 -0
  4. package/dist/clike-DiubheGH.js +616 -0
  5. package/dist/go-BHVhI2MG.js +155 -0
  6. package/dist/go-BgtlNyKc.cjs +1 -0
  7. package/dist/index-B6iSwiLv.js +300 -0
  8. package/dist/index-BnVlSGix.cjs +1 -0
  9. package/dist/index-C8zz5a-F.js +611 -0
  10. package/dist/index-CJBxDvDy.js +93 -0
  11. package/dist/index-CKydJJ8n.js +28596 -0
  12. package/dist/index-CeTMfP8Z.cjs +1 -0
  13. package/dist/index-DBHwJjkL.cjs +3 -0
  14. package/dist/index-RMx02Mab.cjs +72 -0
  15. package/dist/index.cjs +1 -66
  16. package/dist/index.mjs +8 -25476
  17. package/dist/rust-Dt_Syouh.cjs +1 -0
  18. package/dist/rust-ohAAD9YU.js +144 -0
  19. package/dist/types/components/UnaEditor.vue.d.ts +10 -8
  20. package/dist/types/components/UnaEditor.vue.d.ts.map +1 -1
  21. package/dist/types/composables/useEditor.d.ts +2 -0
  22. package/dist/types/composables/useEditor.d.ts.map +1 -1
  23. package/dist/types/extensions/codeBlockDecorator.d.ts +6 -0
  24. package/dist/types/extensions/codeBlockDecorator.d.ts.map +1 -0
  25. package/dist/types/extensions/codeThemeExtension.d.ts +8 -0
  26. package/dist/types/extensions/codeThemeExtension.d.ts.map +1 -0
  27. package/dist/types/extensions/hybridMarkdown.d.ts +2 -1
  28. package/dist/types/extensions/hybridMarkdown.d.ts.map +1 -1
  29. package/dist/types/extensions/languageSupport.d.ts +20 -0
  30. package/dist/types/extensions/languageSupport.d.ts.map +1 -0
  31. package/dist/types/extensions/structuredTable.d.ts +7 -0
  32. package/dist/types/extensions/structuredTable.d.ts.map +1 -0
  33. package/dist/types/extensions/structuredTableModel.d.ts +57 -0
  34. package/dist/types/extensions/structuredTableModel.d.ts.map +1 -0
  35. package/dist/types/index.d.ts +1 -1
  36. package/dist/types/index.d.ts.map +1 -1
  37. package/dist/types/locales/en-US.d.ts.map +1 -1
  38. package/dist/types/themes/codeThemes.d.ts +5 -0
  39. package/dist/types/themes/codeThemes.d.ts.map +1 -0
  40. package/dist/types/types/editor.d.ts +105 -0
  41. package/dist/types/types/editor.d.ts.map +1 -1
  42. package/dist/una-editor.css +1 -1
  43. package/package.json +13 -5
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function p(n){d(n,"start");var t={},e=n.languageData||{},f=!1;for(var u in n)if(u!=e&&n.hasOwnProperty(u))for(var s=t[u]=[],i=n[u],r=0;r<i.length;r++){var o=i[r];s.push(new k(o,n)),(o.indent||o.dedent)&&(f=!0)}return{name:e.name,startState:function(){return{state:"start",pending:null,indent:f?[]:null}},copyState:function(g){var a={state:g.state,pending:g.pending,indent:g.indent&&g.indent.slice(0)};return g.stack&&(a.stack=g.stack.slice(0)),a},token:l(t),indent:h(t,e),mergeTokens:e.mergeTokens,languageData:e}}function d(n,t){if(!n.hasOwnProperty(t))throw new Error("Undefined state "+t+" in simple mode")}function c(n,t){if(!n)return/(?:)/;var e="";return n instanceof RegExp?(n.ignoreCase&&(e="i"),n.unicode&&(e+="u"),n=n.source):n=String(n),new RegExp("^(?:"+n+")",e)}function x(n){if(!n)return null;if(n.apply)return n;if(typeof n=="string")return n.replace(/\./g," ");for(var t=[],e=0;e<n.length;e++)t.push(n[e]&&n[e].replace(/\./g," "));return t}function k(n,t){(n.next||n.push)&&d(t,n.next||n.push),this.regex=c(n.regex),this.token=x(n.token),this.data=n}function l(n){return function(t,e){if(e.pending){var f=e.pending.shift();return e.pending.length==0&&(e.pending=null),t.pos+=f.text.length,f.token}for(var u=n[e.state],s=0;s<u.length;s++){var i=u[s],r=(!i.data.sol||t.sol())&&t.match(i.regex);if(r){i.data.next?e.state=i.data.next:i.data.push?((e.stack||(e.stack=[])).push(e.state),e.state=i.data.push):i.data.pop&&e.stack&&e.stack.length&&(e.state=e.stack.pop()),i.data.indent&&e.indent.push(t.indentation()+t.indentUnit),i.data.dedent&&e.indent.pop();var o=i.token;if(o&&o.apply&&(o=o(r)),r.length>2&&i.token&&typeof i.token!="string"){e.pending=[];for(var g=2;g<r.length;g++)r[g]&&e.pending.push({text:r[g],token:i.token[g-1]});return t.backUp(r[0].length-(r[1]?r[1].length:0)),o[0]}else return o&&o.join?o[0]:o}}return t.next(),null}}function h(n,t){return function(e,f){if(e.indent==null||t.dontIndentStates&&t.dontIndentStates.indexOf(e.state)>-1)return null;var u=e.indent.length-1,s=n[e.state];n:for(;;){for(var i=0;i<s.length;i++){var r=s[i];if(r.data.dedent&&r.data.dedentIfLineStart!==!1){var o=r.regex.exec(f);if(o&&o[0]){u--,(r.next||r.push)&&(s=n[r.next||r.push]),f=f.slice(o[0].length);continue n}}}break}return u<0?0:e.indent[u]}}const b=p({start:[{regex:/b?"/,token:"string",next:"string"},{regex:/b?r"/,token:"string",next:"string_raw"},{regex:/b?r#+"/,token:"string",next:"string_raw_hash"},{regex:/'(?:[^'\\]|\\(?:[nrt0'"]|x[\da-fA-F]{2}|u\{[\da-fA-F]{6}\}))'/,token:"string.special"},{regex:/b'(?:[^']|\\(?:['\\nrt0]|x[\da-fA-F]{2}))'/,token:"string.special"},{regex:/(?:(?:[0-9][0-9_]*)(?:(?:[Ee][+-]?[0-9_]+)|\.[0-9_]+(?:[Ee][+-]?[0-9_]+)?)(?:f32|f64)?)|(?:0(?:b[01_]+|(?:o[0-7_]+)|(?:x[0-9a-fA-F_]+))|(?:[0-9][0-9_]*))(?:u8|u16|u32|u64|i8|i16|i32|i64|isize|usize)?/,token:"number"},{regex:/(let(?:\s+mut)?|fn|enum|mod|struct|type|union)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)/,token:["keyword",null,"def"]},{regex:/(?:abstract|alignof|as|async|await|box|break|continue|const|crate|do|dyn|else|enum|extern|fn|for|final|if|impl|in|loop|macro|match|mod|move|offsetof|override|priv|proc|pub|pure|ref|return|self|sizeof|static|struct|super|trait|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,token:"keyword"},{regex:/\b(?:Self|isize|usize|char|bool|u8|u16|u32|u64|f16|f32|f64|i8|i16|i32|i64|str|Option)\b/,token:"atom"},{regex:/\b(?:true|false|Some|None|Ok|Err)\b/,token:"builtin"},{regex:/\b(fn)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)/,token:["keyword",null,"def"]},{regex:/#!?\[.*\]/,token:"meta"},{regex:/\/\/.*/,token:"comment"},{regex:/\/\*/,token:"comment",next:"comment"},{regex:/[-+\/*=<>!]+/,token:"operator"},{regex:/[a-zA-Z_]\w*!/,token:"macroName"},{regex:/[a-zA-Z_]\w*/,token:"variable"},{regex:/[\{\[\(]/,indent:!0},{regex:/[\}\]\)]/,dedent:!0}],string:[{regex:/"/,token:"string",next:"start"},{regex:/(?:[^\\"]|\\(?:.|$))*/,token:"string"}],string_raw:[{regex:/"/,token:"string",next:"start"},{regex:/[^"]*/,token:"string"}],string_raw_hash:[{regex:/"#+/,token:"string",next:"start"},{regex:/(?:[^"]|"(?!#))*/,token:"string"}],comment:[{regex:/.*?\*\//,token:"comment",next:"start"},{regex:/.*/,token:"comment"}],languageData:{name:"rust",dontIndentStates:["comment"],indentOnInput:/^\s*\}$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}});exports.rust=b;
@@ -0,0 +1,144 @@
1
+ function p(n) {
2
+ d(n, "start");
3
+ var t = {}, e = n.languageData || {}, u = !1;
4
+ for (var f in n) if (f != e && n.hasOwnProperty(f))
5
+ for (var s = t[f] = [], i = n[f], r = 0; r < i.length; r++) {
6
+ var o = i[r];
7
+ s.push(new k(o, n)), (o.indent || o.dedent) && (u = !0);
8
+ }
9
+ return {
10
+ name: e.name,
11
+ startState: function() {
12
+ return { state: "start", pending: null, indent: u ? [] : null };
13
+ },
14
+ copyState: function(g) {
15
+ var a = { state: g.state, pending: g.pending, indent: g.indent && g.indent.slice(0) };
16
+ return g.stack && (a.stack = g.stack.slice(0)), a;
17
+ },
18
+ token: l(t),
19
+ indent: h(t, e),
20
+ mergeTokens: e.mergeTokens,
21
+ languageData: e
22
+ };
23
+ }
24
+ function d(n, t) {
25
+ if (!n.hasOwnProperty(t))
26
+ throw new Error("Undefined state " + t + " in simple mode");
27
+ }
28
+ function x(n, t) {
29
+ if (!n) return /(?:)/;
30
+ var e = "";
31
+ return n instanceof RegExp ? (n.ignoreCase && (e = "i"), n.unicode && (e += "u"), n = n.source) : n = String(n), new RegExp("^(?:" + n + ")", e);
32
+ }
33
+ function c(n) {
34
+ if (!n) return null;
35
+ if (n.apply) return n;
36
+ if (typeof n == "string") return n.replace(/\./g, " ");
37
+ for (var t = [], e = 0; e < n.length; e++)
38
+ t.push(n[e] && n[e].replace(/\./g, " "));
39
+ return t;
40
+ }
41
+ function k(n, t) {
42
+ (n.next || n.push) && d(t, n.next || n.push), this.regex = x(n.regex), this.token = c(n.token), this.data = n;
43
+ }
44
+ function l(n) {
45
+ return function(t, e) {
46
+ if (e.pending) {
47
+ var u = e.pending.shift();
48
+ return e.pending.length == 0 && (e.pending = null), t.pos += u.text.length, u.token;
49
+ }
50
+ for (var f = n[e.state], s = 0; s < f.length; s++) {
51
+ var i = f[s], r = (!i.data.sol || t.sol()) && t.match(i.regex);
52
+ if (r) {
53
+ i.data.next ? e.state = i.data.next : i.data.push ? ((e.stack || (e.stack = [])).push(e.state), e.state = i.data.push) : i.data.pop && e.stack && e.stack.length && (e.state = e.stack.pop()), i.data.indent && e.indent.push(t.indentation() + t.indentUnit), i.data.dedent && e.indent.pop();
54
+ var o = i.token;
55
+ if (o && o.apply && (o = o(r)), r.length > 2 && i.token && typeof i.token != "string") {
56
+ e.pending = [];
57
+ for (var g = 2; g < r.length; g++)
58
+ r[g] && e.pending.push({ text: r[g], token: i.token[g - 1] });
59
+ return t.backUp(r[0].length - (r[1] ? r[1].length : 0)), o[0];
60
+ } else return o && o.join ? o[0] : o;
61
+ }
62
+ }
63
+ return t.next(), null;
64
+ };
65
+ }
66
+ function h(n, t) {
67
+ return function(e, u) {
68
+ if (e.indent == null || t.dontIndentStates && t.dontIndentStates.indexOf(e.state) > -1)
69
+ return null;
70
+ var f = e.indent.length - 1, s = n[e.state];
71
+ n: for (; ; ) {
72
+ for (var i = 0; i < s.length; i++) {
73
+ var r = s[i];
74
+ if (r.data.dedent && r.data.dedentIfLineStart !== !1) {
75
+ var o = r.regex.exec(u);
76
+ if (o && o[0]) {
77
+ f--, (r.next || r.push) && (s = n[r.next || r.push]), u = u.slice(o[0].length);
78
+ continue n;
79
+ }
80
+ }
81
+ }
82
+ break;
83
+ }
84
+ return f < 0 ? 0 : e.indent[f];
85
+ };
86
+ }
87
+ const m = p({
88
+ start: [
89
+ // string and byte string
90
+ { regex: /b?"/, token: "string", next: "string" },
91
+ // raw string and raw byte string
92
+ { regex: /b?r"/, token: "string", next: "string_raw" },
93
+ { regex: /b?r#+"/, token: "string", next: "string_raw_hash" },
94
+ // character
95
+ { regex: /'(?:[^'\\]|\\(?:[nrt0'"]|x[\da-fA-F]{2}|u\{[\da-fA-F]{6}\}))'/, token: "string.special" },
96
+ // byte
97
+ { regex: /b'(?:[^']|\\(?:['\\nrt0]|x[\da-fA-F]{2}))'/, token: "string.special" },
98
+ {
99
+ regex: /(?:(?:[0-9][0-9_]*)(?:(?:[Ee][+-]?[0-9_]+)|\.[0-9_]+(?:[Ee][+-]?[0-9_]+)?)(?:f32|f64)?)|(?:0(?:b[01_]+|(?:o[0-7_]+)|(?:x[0-9a-fA-F_]+))|(?:[0-9][0-9_]*))(?:u8|u16|u32|u64|i8|i16|i32|i64|isize|usize)?/,
100
+ token: "number"
101
+ },
102
+ { regex: /(let(?:\s+mut)?|fn|enum|mod|struct|type|union)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)/, token: ["keyword", null, "def"] },
103
+ { regex: /(?:abstract|alignof|as|async|await|box|break|continue|const|crate|do|dyn|else|enum|extern|fn|for|final|if|impl|in|loop|macro|match|mod|move|offsetof|override|priv|proc|pub|pure|ref|return|self|sizeof|static|struct|super|trait|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/, token: "keyword" },
104
+ { regex: /\b(?:Self|isize|usize|char|bool|u8|u16|u32|u64|f16|f32|f64|i8|i16|i32|i64|str|Option)\b/, token: "atom" },
105
+ { regex: /\b(?:true|false|Some|None|Ok|Err)\b/, token: "builtin" },
106
+ {
107
+ regex: /\b(fn)(\s+)([a-zA-Z_][a-zA-Z0-9_]*)/,
108
+ token: ["keyword", null, "def"]
109
+ },
110
+ { regex: /#!?\[.*\]/, token: "meta" },
111
+ { regex: /\/\/.*/, token: "comment" },
112
+ { regex: /\/\*/, token: "comment", next: "comment" },
113
+ { regex: /[-+\/*=<>!]+/, token: "operator" },
114
+ { regex: /[a-zA-Z_]\w*!/, token: "macroName" },
115
+ { regex: /[a-zA-Z_]\w*/, token: "variable" },
116
+ { regex: /[\{\[\(]/, indent: !0 },
117
+ { regex: /[\}\]\)]/, dedent: !0 }
118
+ ],
119
+ string: [
120
+ { regex: /"/, token: "string", next: "start" },
121
+ { regex: /(?:[^\\"]|\\(?:.|$))*/, token: "string" }
122
+ ],
123
+ string_raw: [
124
+ { regex: /"/, token: "string", next: "start" },
125
+ { regex: /[^"]*/, token: "string" }
126
+ ],
127
+ string_raw_hash: [
128
+ { regex: /"#+/, token: "string", next: "start" },
129
+ { regex: /(?:[^"]|"(?!#))*/, token: "string" }
130
+ ],
131
+ comment: [
132
+ { regex: /.*?\*\//, token: "comment", next: "start" },
133
+ { regex: /.*/, token: "comment" }
134
+ ],
135
+ languageData: {
136
+ name: "rust",
137
+ dontIndentStates: ["comment"],
138
+ indentOnInput: /^\s*\}$/,
139
+ commentTokens: { line: "//", block: { open: "/*", close: "*/" } }
140
+ }
141
+ });
142
+ export {
143
+ m as rust
144
+ };
@@ -1,18 +1,18 @@
1
1
  import type { EditorProps, EditorExposed } from '../types/editor';
2
2
  declare const __VLS_export: import("vue").DefineComponent<EditorProps, EditorExposed, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
3
- "update:modelValue": (value: string) => any;
4
- change: (value: string) => any;
5
- save: () => any;
6
- focus: () => any;
7
3
  blur: () => any;
4
+ change: (value: string) => any;
8
5
  drop: (files: File[]) => any;
6
+ focus: () => any;
7
+ "update:modelValue": (value: string) => any;
8
+ save: () => any;
9
9
  }, string, import("vue").PublicProps, Readonly<EditorProps> & Readonly<{
10
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
11
- onChange?: ((value: string) => any) | undefined;
12
- onSave?: (() => any) | undefined;
13
- onFocus?: (() => any) | undefined;
14
10
  onBlur?: (() => any) | undefined;
11
+ onChange?: ((value: string) => any) | undefined;
15
12
  onDrop?: ((files: File[]) => any) | undefined;
13
+ onFocus?: (() => any) | undefined;
14
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
15
+ onSave?: (() => any) | undefined;
16
16
  }>, {
17
17
  modelValue: string;
18
18
  lineNumbers: boolean;
@@ -21,6 +21,8 @@ declare const __VLS_export: import("vue").DefineComponent<EditorProps, EditorExp
21
21
  vimMode: boolean;
22
22
  locale: string | import("..").CustomLocale;
23
23
  theme: "light" | "dark";
24
+ codeTheme: "auto" | import("../types/editor").CodeThemeName;
25
+ codeLineNumbers: boolean;
24
26
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
25
27
  declare const _default: typeof __VLS_export;
26
28
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"UnaEditor.vue.d.ts","sourceRoot":"","sources":["../../../src/components/UnaEditor.vue"],"names":[],"mappings":"AAgKA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AA2KlE,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;6EAKhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
1
+ {"version":3,"file":"UnaEditor.vue.d.ts","sourceRoot":"","sources":["../../../src/components/UnaEditor.vue"],"names":[],"mappings":"AAwKA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAqLlE,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;6EAKhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
@@ -16,5 +16,7 @@ export declare function useEditor(container: Ref<HTMLElement | undefined>, props
16
16
  insertText: (text: string) => void;
17
17
  getHeadings: () => Heading[];
18
18
  scrollToLine: (lineNumber: number) => void;
19
+ undoHistory: () => boolean;
20
+ redoHistory: () => boolean;
19
21
  };
20
22
  //# sourceMappingURL=useEditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useEditor.d.ts","sourceRoot":"","sources":["../../../src/composables/useEditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAEvE,OAAO,EAAE,UAAU,EAAsD,MAAM,kBAAkB,CAAC;AAYlG,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AA6C5D,wBAAgB,SAAS,CACvB,SAAS,EAAE,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,EACvC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE;IACJ,CAAC,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACnB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;CAClC;;;wBAyRwB,MAAM;yBAOL,UAAU,GAAG,SAAS;uBAItB,MAAM;uBAkBR,OAAO,EAAE;+BAwBC,MAAM;EAwCzC"}
1
+ {"version":3,"file":"useEditor.d.ts","sourceRoot":"","sources":["../../../src/composables/useEditor.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAEvE,OAAO,EAAE,UAAU,EAAsD,MAAM,kBAAkB,CAAC;AAiBlG,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAa,MAAM,iBAAiB,CAAC;AA6CvE,wBAAgB,SAAS,CACvB,SAAS,EAAE,GAAG,CAAC,WAAW,GAAG,SAAS,CAAC,EACvC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE;IACJ,CAAC,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACnB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;CAClC;;;wBAgWwB,MAAM;yBAOL,UAAU,GAAG,SAAS;uBAItB,MAAM;uBAkBR,OAAO,EAAE;+BAwBC,MAAM;;;EAoDzC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Create code block decorator extension
3
+ * @param showLineNumbers - Whether to show line numbers
4
+ */
5
+ export declare function createCodeBlockDecoratorExtension(showLineNumbers: boolean): import("@codemirror/state").Extension[];
6
+ //# sourceMappingURL=codeBlockDecorator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeBlockDecorator.d.ts","sourceRoot":"","sources":["../../../src/extensions/codeBlockDecorator.ts"],"names":[],"mappings":"AAqFA;;;GAGG;AACH,wBAAgB,iCAAiC,CAAC,eAAe,EAAE,OAAO,2CAsCzE"}
@@ -0,0 +1,8 @@
1
+ import type { Extension } from '@codemirror/state';
2
+ import type { CodeTheme } from '../types/editor';
3
+ /**
4
+ * Create code theme extension
5
+ * Applies theme colors to code blocks via line-scoped CSS selectors and syntax highlighting
6
+ */
7
+ export declare function createCodeThemeExtension(theme: CodeTheme): Extension;
8
+ //# sourceMappingURL=codeThemeExtension.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeThemeExtension.d.ts","sourceRoot":"","sources":["../../../src/extensions/codeThemeExtension.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAiEpE"}
@@ -1,6 +1,7 @@
1
1
  import { type Extension } from '@codemirror/state';
2
+ import type { RenderHooks } from '../types/editor';
2
3
  export declare const remeasureEffect: import("@codemirror/state").StateEffectType<null>;
3
4
  export declare function setupVimLogicalNavigation(): void;
4
- export declare function createLivePreviewExtensions(): Extension;
5
+ export declare function createLivePreviewExtensions(renderHooks?: RenderHooks): Extension;
5
6
  export declare function createCodeDecorationExtension(): Extension;
6
7
  //# sourceMappingURL=hybridMarkdown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hybridMarkdown.d.ts","sourceRoot":"","sources":["../../../src/extensions/hybridMarkdown.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,KAAK,SAAS,EAAc,MAAM,mBAAmB,CAAC;AAMlF,eAAO,MAAM,eAAe,mDAA6B,CAAC;AAI1D,wBAAgB,yBAAyB,SA4CxC;AAocD,wBAAgB,2BAA2B,IAAI,SAAS,CAcvD;AA4CD,wBAAgB,6BAA6B,IAAI,SAAS,CAOzD"}
1
+ {"version":3,"file":"hybridMarkdown.d.ts","sourceRoot":"","sources":["../../../src/extensions/hybridMarkdown.ts"],"names":[],"mappings":"AAEA,OAAO,EAAqB,KAAK,SAAS,EAAc,MAAM,mBAAmB,CAAC;AAIlF,OAAO,KAAK,EAOV,WAAW,EACZ,MAAM,iBAAiB,CAAC;AAIzB,eAAO,MAAM,eAAe,mDAA6B,CAAC;AAI1D,wBAAgB,yBAAyB,SAoDxC;AAu7BD,wBAAgB,2BAA2B,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAahF;AA4CD,wBAAgB,6BAA6B,IAAI,SAAS,CAOzD"}
@@ -0,0 +1,20 @@
1
+ import { LanguageDescription, LanguageSupport } from '@codemirror/language';
2
+ /**
3
+ * Get language support for a given language name
4
+ * @param language - Language name (e.g., 'typescript', 'python')
5
+ * @returns Language support or undefined if not supported
6
+ */
7
+ export declare function getLanguageSupport(language: string): Promise<LanguageSupport | undefined>;
8
+ /**
9
+ * Get list of all supported languages
10
+ */
11
+ export declare function getSupportedLanguages(): string[];
12
+ /**
13
+ * Check if a language is supported
14
+ */
15
+ export declare function isLanguageSupported(language: string): boolean;
16
+ /**
17
+ * Create LanguageDescription array for markdown codeLanguages
18
+ */
19
+ export declare function createLanguageDescriptions(): LanguageDescription[];
20
+ //# sourceMappingURL=languageSupport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"languageSupport.d.ts","sourceRoot":"","sources":["../../../src/extensions/languageSupport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAoE5E;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAuB/F;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAG7D;AAED;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,mBAAmB,EAAE,CAwBlE"}
@@ -0,0 +1,7 @@
1
+ import { type Extension } from '@codemirror/state';
2
+ import { EditorView } from '@codemirror/view';
3
+ export declare function enterStructuredTableFromAdjacentText(view: EditorView, direction: 1 | -1, editing: boolean, position?: number): boolean;
4
+ export declare function setupStructuredTableVim(): void;
5
+ export declare function createStructuredTableExtensions(): Extension;
6
+ export declare function isStructuredTableOverlayTarget(target: EventTarget | null): boolean;
7
+ //# sourceMappingURL=structuredTable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structuredTable.d.ts","sourceRoot":"","sources":["../../../src/extensions/structuredTable.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+D,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAChH,OAAO,EAAc,UAAU,EAAwE,MAAM,kBAAkB,CAAC;AAkyDhI,wBAAgB,oCAAoC,CAClD,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,EACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,SAAiC,GACxC,OAAO,CAiCT;AA41BD,wBAAgB,uBAAuB,IAAI,IAAI,CAG9C;AA+ED,wBAAgB,+BAA+B,IAAI,SAAS,CA2B3D;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAElF"}
@@ -0,0 +1,57 @@
1
+ import type { EditorState } from '@codemirror/state';
2
+ interface TreeNode {
3
+ name: string;
4
+ from: number;
5
+ to: number;
6
+ firstChild: TreeNode | null;
7
+ nextSibling: TreeNode | null;
8
+ parent: TreeNode | null;
9
+ }
10
+ export type TableAlignment = 'none' | 'left' | 'right' | 'center';
11
+ export interface TableCellMapping {
12
+ row: number;
13
+ col: number;
14
+ from: number;
15
+ to: number;
16
+ contentFrom: number;
17
+ contentTo: number;
18
+ text: string;
19
+ isHeader: boolean;
20
+ }
21
+ export interface TableRowMapping {
22
+ row: number;
23
+ from: number;
24
+ to: number;
25
+ cells: TableCellMapping[];
26
+ isHeader: boolean;
27
+ }
28
+ export interface TableMapping {
29
+ from: number;
30
+ to: number;
31
+ delimiterFrom: number;
32
+ delimiterTo: number;
33
+ columnCount: number;
34
+ alignments: TableAlignment[];
35
+ rows: TableRowMapping[];
36
+ }
37
+ export interface TableRewriteResult {
38
+ text: string;
39
+ focusRow: number;
40
+ focusCol: number;
41
+ focusFrom: number;
42
+ focusTo: number;
43
+ }
44
+ export declare function normalizePastedText(text: string): string;
45
+ export declare function normalizeCellText(text: string): string;
46
+ export declare function findTableMappingAt(state: EditorState, pos: number): TableMapping | null;
47
+ export declare function findTableMappingsInRange(state: EditorState, from: number, to: number): TableMapping[];
48
+ export declare function updateTableCell(table: TableMapping, row: number, col: number, text: string): TableRewriteResult;
49
+ export declare function insertTableRow(table: TableMapping, rowIndex: number, position: 'before' | 'after'): TableRewriteResult;
50
+ export declare function insertTableColumn(table: TableMapping, colIndex: number, position: 'before' | 'after'): TableRewriteResult;
51
+ export declare function deleteTableRow(table: TableMapping, row: number): TableRewriteResult | null;
52
+ export declare function deleteTableColumn(table: TableMapping, col: number): TableRewriteResult | null;
53
+ export declare function isCellEmpty(table: TableMapping, row: number, col: number): boolean;
54
+ export declare function isRowEmpty(table: TableMapping, row: number): boolean;
55
+ export declare function parseInlinePreviewText(text: string): TreeNode;
56
+ export {};
57
+ //# sourceMappingURL=structuredTableModel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structuredTableModel.d.ts","sourceRoot":"","sources":["../../../src/extensions/structuredTableModel.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export declare const version: string;
2
2
  export { default as UnaEditor } from './components/UnaEditor.vue';
3
- export type { EditorProps, EditorEvents, EditorExposed, CustomLocale, Locale, } from './types/editor';
3
+ export type { EditorProps, EditorEvents, EditorExposed, ImageRenderContext, ImageRenderResult, LinkRenderContext, LinkRenderResult, RenderHooks, CustomLocale, Locale, } from './types/editor';
4
4
  export { locales, defaultLocale, defineLocale, zhCN, enUS } from './locales';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,QAAyB,CAAC;AAG9C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGlE,YAAY,EACV,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,MAAM,GACP,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,QAAyB,CAAC;AAG9C,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGlE,YAAY,EACV,WAAW,EACX,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,MAAM,GACP,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"en-US.d.ts","sourceRoot":"","sources":["../../../src/locales/en-US.ts"],"names":[],"mappings":";;;;;;AAAA,wBAKE"}
1
+ {"version":3,"file":"en-US.d.ts","sourceRoot":"","sources":["../../../src/locales/en-US.ts"],"names":[],"mappings":";;;;;;AAAA,wBAME"}
@@ -0,0 +1,5 @@
1
+ import type { CodeTheme } from '../types/editor';
2
+ export declare const CODE_THEMES: Record<string, CodeTheme>;
3
+ export declare function getCodeTheme(name: string): CodeTheme | undefined;
4
+ export declare function getDefaultCodeTheme(editorTheme: 'light' | 'dark'): CodeTheme;
5
+ //# sourceMappingURL=codeThemes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeThemes.d.ts","sourceRoot":"","sources":["../../../src/themes/codeThemes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAiOjD,CAAC;AAGF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAEhE;AAGD,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAE5E"}
@@ -1,9 +1,100 @@
1
1
  import type { EditorView } from '@codemirror/view';
2
+ /**
3
+ * Shared document position for render hook contexts.
4
+ */
5
+ export interface RenderHookPosition {
6
+ from: number;
7
+ to: number;
8
+ }
9
+ /**
10
+ * Inline style object accepted by render hooks.
11
+ */
12
+ export interface RenderHookStyle {
13
+ [property: string]: string;
14
+ }
15
+ /**
16
+ * Dataset object accepted by render hooks.
17
+ */
18
+ export interface RenderHookDataset {
19
+ [key: string]: string;
20
+ }
21
+ export type CodeThemeName = 'one-dark' | 'dracula' | 'monokai' | 'solarized-dark' | 'nord' | 'tokyo-night' | 'github-light' | 'solarized-light' | 'atom-one-light';
22
+ export interface CodeThemeColors {
23
+ background: string;
24
+ foreground: string;
25
+ selection: string;
26
+ lineNumber: string;
27
+ keyword: string;
28
+ function: string;
29
+ string: string;
30
+ number: string;
31
+ comment: string;
32
+ operator: string;
33
+ variable: string;
34
+ type: string;
35
+ constant?: string;
36
+ property?: string;
37
+ tag?: string;
38
+ attribute?: string;
39
+ regexp?: string;
40
+ escape?: string;
41
+ }
42
+ export interface CodeTheme {
43
+ name: string;
44
+ type: 'light' | 'dark';
45
+ colors: CodeThemeColors;
46
+ }
47
+ /**
48
+ * Context passed to image render hooks.
49
+ */
50
+ export interface ImageRenderContext {
51
+ src: string;
52
+ alt: string;
53
+ title?: string;
54
+ raw: string;
55
+ position: RenderHookPosition;
56
+ }
57
+ /**
58
+ * Partial render result returned from image render hooks.
59
+ */
60
+ export interface ImageRenderResult {
61
+ src: string;
62
+ className?: string;
63
+ dataset?: RenderHookDataset;
64
+ style?: RenderHookStyle;
65
+ }
66
+ /**
67
+ * Context passed to link render hooks.
68
+ */
69
+ export interface LinkRenderContext {
70
+ href: string;
71
+ text: string;
72
+ title?: string;
73
+ raw: string;
74
+ position: RenderHookPosition;
75
+ }
76
+ /**
77
+ * Partial render result returned from link render hooks.
78
+ */
79
+ export interface LinkRenderResult {
80
+ href: string;
81
+ className?: string;
82
+ dataset?: RenderHookDataset;
83
+ style?: RenderHookStyle;
84
+ }
85
+ /**
86
+ * Optional render-time hooks for live preview elements.
87
+ */
88
+ export interface RenderHooks {
89
+ image?: (context: ImageRenderContext) => Partial<ImageRenderResult> | void;
90
+ link?: (context: LinkRenderContext) => Partial<LinkRenderResult> | void;
91
+ }
2
92
  export interface EditorProps {
3
93
  modelValue: string;
4
94
  lineNumbers?: boolean;
5
95
  lineWrap?: boolean;
6
96
  livePreview?: boolean;
97
+ renderHooks?: RenderHooks;
7
98
  vimMode?: boolean;
8
99
  locale?: string | CustomLocale;
9
100
  placeholder?: string;
@@ -13,6 +104,18 @@ export interface EditorProps {
13
104
  fontFamily?: string;
14
105
  codeFontFamily?: string;
15
106
  fontSize?: number;
107
+ /**
108
+ * Code block theme
109
+ * - 'auto': Follow editor theme
110
+ * - CodeThemeName: Use specified color scheme
111
+ * @default 'auto'
112
+ */
113
+ codeTheme?: 'auto' | CodeThemeName;
114
+ /**
115
+ * Show line numbers in code blocks
116
+ * @default false
117
+ */
118
+ codeLineNumbers?: boolean;
16
119
  }
17
120
  export interface EditorEvents {
18
121
  'update:modelValue': (value: string) => void;
@@ -36,6 +139,8 @@ export interface EditorExposed {
36
139
  insertText: (text: string) => void;
37
140
  getHeadings: () => Heading[];
38
141
  scrollToLine: (lineNumber: number) => void;
142
+ undoHistory: () => boolean;
143
+ redoHistory: () => boolean;
39
144
  }
40
145
  export interface CustomLocale {
41
146
  [key: string]: string;
@@ -1 +1 @@
1
- {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../src/types/editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAGnD,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,YAAY;IAC3B,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;CAC/B;AAGD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAGD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,gBAAgB,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,KAAK,IAAI,CAAC;IACxD,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,UAAU,GAAG,SAAS,CAAC;IAC5C,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,WAAW,EAAE,MAAM,OAAO,EAAE,CAAC;IAC7B,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5C;AAGD,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,YAAY,CAAC"}
1
+ {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../src/types/editor.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- .una-editor[data-v-48002c94]{width:100%;height:100%;min-height:200px;position:relative}.una-editor-fullscreen-browser[data-v-48002c94]{position:fixed;inset:0;z-index:9999;background:#fff}.una-editor-fullscreen-tip[data-v-48002c94]{position:absolute;top:20px;left:50%;transform:translate(-50%);background:#000c;color:#fff;padding:12px 24px;border-radius:8px;font-size:14px;z-index:10000;pointer-events:none;box-shadow:0 4px 12px #0000004d}.fade-enter-active[data-v-48002c94],.fade-leave-active[data-v-48002c94]{transition:opacity .3s ease}.fade-enter-from[data-v-48002c94],.fade-leave-to[data-v-48002c94]{opacity:0}
1
+ .una-editor[data-v-d031fa3f]{width:100%;height:100%;min-height:200px;position:relative}.una-editor-fullscreen-browser[data-v-d031fa3f]{position:fixed;inset:0;z-index:9999;background:#fff}.una-editor-fullscreen-tip[data-v-d031fa3f]{position:absolute;top:20px;left:50%;transform:translate(-50%);background:#000c;color:#fff;padding:12px 24px;border-radius:8px;font-size:14px;z-index:10000;pointer-events:none;box-shadow:0 4px 12px #0000004d}.fade-enter-active[data-v-d031fa3f],.fade-leave-active[data-v-d031fa3f]{transition:opacity .3s ease}.fade-enter-from[data-v-d031fa3f],.fade-leave-to[data-v-d031fa3f]{opacity:0}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "una-editor",
3
- "version": "0.3.0",
3
+ "version": "0.4.0-alpha.0",
4
4
  "description": "Lightweight & high-performance Vue 3 editor powered by CodeMirror 6. Supports Hybrid Markdown and Vim mode.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -38,8 +38,8 @@
38
38
  },
39
39
  "devDependencies": {
40
40
  "@eslint/js": "^10.0.1",
41
- "@typescript-eslint/eslint-plugin": "^8.57.0",
42
- "@typescript-eslint/parser": "^8.57.0",
41
+ "@typescript-eslint/eslint-plugin": "^8.57.1",
42
+ "@typescript-eslint/parser": "^8.57.1",
43
43
  "@vitejs/plugin-vue": "^5.2.4",
44
44
  "@vue/test-utils": "^2.4.6",
45
45
  "concurrently": "^9.2.1",
@@ -48,11 +48,11 @@
48
48
  "jsdom": "^28.1.0",
49
49
  "prettier": "^3.8.1",
50
50
  "typescript": "^5.9.3",
51
- "typescript-eslint": "^8.57.0",
51
+ "typescript-eslint": "^8.57.1",
52
52
  "vite": "^7.3.1",
53
53
  "vitest": "^4.1.0",
54
54
  "vue": "^3.5.30",
55
- "vue-tsc": "^3.2.5"
55
+ "vue-tsc": "^3.2.6"
56
56
  },
57
57
  "keywords": [
58
58
  "vue",
@@ -74,12 +74,20 @@
74
74
  "homepage": "https://charlestang.github.io/UnaEditor/",
75
75
  "dependencies": {
76
76
  "@codemirror/commands": "^6.10.3",
77
+ "@codemirror/lang-css": "^6.3.1",
78
+ "@codemirror/lang-java": "^6.0.2",
79
+ "@codemirror/lang-javascript": "^6.2.5",
77
80
  "@codemirror/lang-markdown": "^6.5.0",
81
+ "@codemirror/lang-php": "^6.0.2",
82
+ "@codemirror/lang-python": "^6.2.1",
78
83
  "@codemirror/language": "^6.12.2",
84
+ "@codemirror/language-data": "^6.5.2",
85
+ "@codemirror/legacy-modes": "^6.5.2",
79
86
  "@codemirror/search": "^6.6.0",
80
87
  "@codemirror/state": "^6.6.0",
81
88
  "@codemirror/theme-one-dark": "^6.1.3",
82
89
  "@codemirror/view": "^6.40.0",
90
+ "@lezer/highlight": "^1.2.3",
83
91
  "@replit/codemirror-vim": "^6.3.0"
84
92
  }
85
93
  }