nuxt-codemirror 0.0.11 → 0.0.14

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.
package/dist/module.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _nuxt_schema from '@nuxt/schema';
2
2
 
3
- declare const _default: _nuxt_schema.NuxtModule<_nuxt_schema.ModuleOptions>;
3
+ declare const _default: _nuxt_schema.NuxtModule<_nuxt_schema.ModuleOptions, _nuxt_schema.ModuleOptions, false>;
4
4
 
5
5
  export { _default as default };
package/dist/module.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as _nuxt_schema from '@nuxt/schema';
2
2
 
3
- declare const _default: _nuxt_schema.NuxtModule<_nuxt_schema.ModuleOptions>;
3
+ declare const _default: _nuxt_schema.NuxtModule<_nuxt_schema.ModuleOptions, _nuxt_schema.ModuleOptions, false>;
4
4
 
5
5
  export { _default as default };
package/dist/module.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "nuxt-codemirror",
3
3
  "configKey": "nuxtCodemirror",
4
- "version": "0.0.11",
4
+ "version": "0.0.14",
5
5
  "builder": {
6
- "@nuxt/module-builder": "0.8.1",
6
+ "@nuxt/module-builder": "0.8.4",
7
7
  "unbuild": "2.0.0"
8
8
  }
9
9
  }
@@ -70,7 +70,7 @@ export function useNuxtCodeMirror(props) {
70
70
  indentWithTab: defaultIndentWithTab,
71
71
  basicSetup: defaultBasicSetup
72
72
  });
73
- let getExtensions = [updateListener, defaultThemeOption, ...defaultExtensions];
73
+ let getExtensions = [defaultExtensions, updateListener, defaultThemeOption];
74
74
  if (onUpdate && typeof onUpdate === "function") {
75
75
  getExtensions.push(EditorView.updateListener.of(onUpdate));
76
76
  }
@@ -1,7 +1,33 @@
1
1
  import type { Extension } from '@codemirror/state';
2
- import { type BasicSetupOptions } from '@uiw/codemirror-extensions-basic-setup';
3
2
  export * from '@codemirror/theme-one-dark';
4
3
  export * from './theme/light.js';
4
+ export interface BasicSetupOptions {
5
+ lineNumbers?: boolean;
6
+ highlightActiveLineGutter?: boolean;
7
+ highlightSpecialChars?: boolean;
8
+ history?: boolean;
9
+ foldGutter?: boolean;
10
+ drawSelection?: boolean;
11
+ dropCursor?: boolean;
12
+ allowMultipleSelections?: boolean;
13
+ indentOnInput?: boolean;
14
+ syntaxHighlighting?: boolean;
15
+ bracketMatching?: boolean;
16
+ closeBrackets?: boolean;
17
+ autocompletion?: boolean;
18
+ rectangularSelection?: boolean;
19
+ crosshairCursor?: boolean;
20
+ highlightActiveLine?: boolean;
21
+ highlightSelectionMatches?: boolean;
22
+ defaultKeymap?: boolean;
23
+ closeBracketsKeymap?: boolean;
24
+ searchKeymap?: boolean;
25
+ historyKeymap?: boolean;
26
+ foldKeymap?: boolean;
27
+ completionKeymap?: boolean;
28
+ lintKeymap?: boolean;
29
+ tabSize?: number;
30
+ }
5
31
  export interface DefaultExtensionsOptions {
6
32
  indentWithTab?: boolean;
7
33
  basicSetup?: boolean | BasicSetupOptions;
@@ -10,4 +36,9 @@ export interface DefaultExtensionsOptions {
10
36
  readOnly?: boolean;
11
37
  editable?: boolean;
12
38
  }
39
+ export declare const minimalSetup: Extension;
40
+ /**
41
+ * Basic setup that includes standard CodeMirror extensions
42
+ */
43
+ export declare const basicSetup: (options?: BasicSetupOptions) => Extension[];
13
44
  export declare const getDefaultExtensions: (optios?: DefaultExtensionsOptions) => Extension[];
@@ -1,11 +1,90 @@
1
- import { indentWithTab } from "@codemirror/commands";
2
- import { basicSetup } from "@uiw/codemirror-extensions-basic-setup";
3
- import { EditorView, keymap, placeholder } from "@codemirror/view";
1
+ import { indentWithTab, history, defaultKeymap, historyKeymap } from "@codemirror/commands";
2
+ import {
3
+ EditorView,
4
+ keymap,
5
+ placeholder,
6
+ lineNumbers,
7
+ highlightActiveLineGutter,
8
+ highlightSpecialChars,
9
+ drawSelection,
10
+ dropCursor,
11
+ rectangularSelection,
12
+ crosshairCursor,
13
+ highlightActiveLine
14
+ } from "@codemirror/view";
4
15
  import { oneDark } from "@codemirror/theme-one-dark";
5
16
  import { EditorState } from "@codemirror/state";
17
+ import { highlightSelectionMatches, searchKeymap } from "@codemirror/search";
18
+ import { closeBrackets, autocompletion, closeBracketsKeymap, completionKeymap } from "@codemirror/autocomplete";
19
+ import {
20
+ foldGutter,
21
+ indentOnInput,
22
+ syntaxHighlighting,
23
+ defaultHighlightStyle,
24
+ bracketMatching,
25
+ indentUnit,
26
+ foldKeymap
27
+ } from "@codemirror/language";
28
+ import { lintKeymap } from "@codemirror/lint";
6
29
  import { defaultLightThemeOption } from "./theme/light.js";
7
30
  export * from "@codemirror/theme-one-dark";
8
31
  export * from "./theme/light.js";
32
+ export const minimalSetup = (() => [
33
+ highlightSpecialChars(),
34
+ history(),
35
+ drawSelection(),
36
+ syntaxHighlighting(defaultHighlightStyle, { fallback: true }),
37
+ keymap.of([
38
+ ...defaultKeymap,
39
+ ...historyKeymap
40
+ ])
41
+ ])();
42
+ export const basicSetup = (options = {}) => {
43
+ let keymaps = [];
44
+ if (options.closeBracketsKeymap !== false) {
45
+ keymaps = keymaps.concat(closeBracketsKeymap);
46
+ }
47
+ if (options.defaultKeymap !== false) {
48
+ keymaps = keymaps.concat(defaultKeymap);
49
+ }
50
+ if (options.searchKeymap !== false) {
51
+ keymaps = keymaps.concat(searchKeymap);
52
+ }
53
+ if (options.historyKeymap !== false) {
54
+ keymaps = keymaps.concat(historyKeymap);
55
+ }
56
+ if (options.foldKeymap !== false) {
57
+ keymaps = keymaps.concat(foldKeymap);
58
+ }
59
+ if (options.completionKeymap !== false) {
60
+ keymaps = keymaps.concat(completionKeymap);
61
+ }
62
+ if (options.lintKeymap !== false) {
63
+ keymaps = keymaps.concat(lintKeymap);
64
+ }
65
+ const extensions = [];
66
+ if (options.lineNumbers !== false) extensions.push(lineNumbers());
67
+ if (options.highlightActiveLineGutter !== false) extensions.push(highlightActiveLineGutter());
68
+ if (options.highlightSpecialChars !== false) extensions.push(highlightSpecialChars());
69
+ if (options.history !== false) extensions.push(history());
70
+ if (options.foldGutter !== false) extensions.push(foldGutter());
71
+ if (options.drawSelection !== false) extensions.push(drawSelection());
72
+ if (options.dropCursor !== false) extensions.push(dropCursor());
73
+ if (options.allowMultipleSelections !== false) extensions.push(EditorState.allowMultipleSelections.of(true));
74
+ if (options.indentOnInput !== false) extensions.push(indentOnInput());
75
+ if (options.syntaxHighlighting !== false)
76
+ extensions.push(syntaxHighlighting(defaultHighlightStyle));
77
+ if (options.bracketMatching !== false) extensions.push(bracketMatching());
78
+ if (options.closeBrackets !== false) extensions.push(closeBrackets());
79
+ if (options.autocompletion !== false) extensions.push(autocompletion());
80
+ if (options.rectangularSelection !== false) extensions.push(rectangularSelection());
81
+ if (options.crosshairCursor !== false) extensions.push(crosshairCursor());
82
+ if (options.highlightActiveLine !== false) extensions.push(highlightActiveLine());
83
+ if (options.highlightSelectionMatches !== false) extensions.push(highlightSelectionMatches());
84
+ if (options.tabSize && typeof options.tabSize === "number")
85
+ extensions.push(indentUnit.of(" ".repeat(options.tabSize)));
86
+ return extensions.concat([keymap.of(keymaps.flat())]).filter(Boolean);
87
+ };
9
88
  export const getDefaultExtensions = (optios = {}) => {
10
89
  const {
11
90
  indentWithTab: defaultIndentWithTab = true,
@@ -21,9 +100,9 @@ export const getDefaultExtensions = (optios = {}) => {
21
100
  }
22
101
  if (defaultBasicSetup) {
23
102
  if (typeof defaultBasicSetup === "boolean") {
24
- getExtensions.unshift(basicSetup());
103
+ getExtensions.push(basicSetup());
25
104
  } else {
26
- getExtensions.unshift(basicSetup(defaultBasicSetup));
105
+ getExtensions.unshift(minimalSetup);
27
106
  }
28
107
  }
29
108
  if (placeholderStr) {
@@ -48,5 +127,5 @@ export const getDefaultExtensions = (optios = {}) => {
48
127
  if (readOnly) {
49
128
  getExtensions.push(EditorState.readOnly.of(true));
50
129
  }
51
- return [...getExtensions];
130
+ return getExtensions;
52
131
  };
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "nuxt-codemirror",
3
- "version": "0.0.11",
3
+ "version": "0.0.14",
4
4
  "description": "Nuxt codemirror module",
5
5
  "repository": "https://github.com/ThimoDEV/nuxt-codemirror",
6
+ "homepage": "https://github.com/ThimoDEV/nuxt-codemirror#readme",
6
7
  "license": "MIT",
7
8
  "type": "module",
8
9
  "author": {
@@ -33,32 +34,36 @@
33
34
  "test:types": "vue-tsc --noEmit && cd playground && vue-tsc --noEmit"
34
35
  },
35
36
  "dependencies": {
36
- "@babel/runtime": "^7.25.0",
37
- "@codemirror/commands": "^6.6.0",
38
- "@codemirror/state": "6.4.1",
39
- "@codemirror/theme-one-dark": "^6.1.1",
40
- "@codemirror/view": "6.30.0",
41
- "@nuxt/kit": "^3.12.4",
42
- "@uiw/codemirror-extensions-basic-setup": "^4.23.0"
37
+ "@babel/runtime": "^7.26.10",
38
+ "@codemirror/lang-javascript": "^6.2.3",
39
+ "@codemirror/autocomplete": "^6.18.6",
40
+ "@codemirror/commands": "^6.8.0",
41
+ "@codemirror/language": "^6.10.8",
42
+ "@codemirror/lint": "^6.8.4",
43
+ "@codemirror/search": "^6.5.10",
44
+ "@codemirror/state": "6.5.2",
45
+ "@codemirror/theme-one-dark": "^6.1.2",
46
+ "@codemirror/view": "6.36.4",
47
+ "@nuxt/kit": "^3.16.0"
43
48
  },
44
49
  "devDependencies": {
45
- "@nuxt/devtools": "^1.3.9",
46
- "@nuxt/eslint-config": "^0.5.0",
47
- "@nuxt/module-builder": "^0.8.1",
48
- "@nuxt/schema": "^3.12.4",
49
- "@nuxt/test-utils": "^3.13.1",
50
- "@types/node": "^20.14.11",
51
- "changelogen": "^0.5.5",
52
- "eslint": "^9.7.0",
53
- "nuxt": "^3.12.4",
54
- "typescript": "latest",
55
- "vitest": "^2.0.3",
56
- "vue-tsc": "^2.0.26"
50
+ "@nuxt/devtools": "^2.2.1",
51
+ "@nuxt/eslint-config": "^1.2.0",
52
+ "@nuxt/module-builder": "^0.8.4",
53
+ "@nuxt/schema": "^3.16.0",
54
+ "@nuxt/test-utils": "^3.17.2",
55
+ "@types/node": "^22.13.10",
56
+ "changelogen": "^0.6.1",
57
+ "eslint": "^9.22.0",
58
+ "nuxt": "^3.16.0",
59
+ "typescript": "5.3.2",
60
+ "vitest": "^3.0.8",
61
+ "vue-tsc": "2.0.29"
57
62
  },
58
63
  "keywords": [
59
64
  "nuxt",
60
65
  "codemirror",
61
66
  "vue"
62
67
  ],
63
- "packageManager": "pnpm@9.7.0"
64
- }
68
+ "packageManager": "pnpm@10.6.2"
69
+ }