@kerebron/extension-lsp 0.4.1

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 (211) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +82 -0
  3. package/esm/_dnt.polyfills.d.ts +101 -0
  4. package/esm/_dnt.polyfills.d.ts.map +1 -0
  5. package/esm/_dnt.polyfills.js +127 -0
  6. package/esm/_dnt.shims.d.ts +6 -0
  7. package/esm/_dnt.shims.d.ts.map +1 -0
  8. package/esm/_dnt.shims.js +61 -0
  9. package/esm/editor/src/CoreEditor.d.ts +40 -0
  10. package/esm/editor/src/CoreEditor.d.ts.map +1 -0
  11. package/esm/editor/src/CoreEditor.js +252 -0
  12. package/esm/editor/src/DummyEditorView.d.ts +60 -0
  13. package/esm/editor/src/DummyEditorView.d.ts.map +1 -0
  14. package/esm/editor/src/DummyEditorView.js +277 -0
  15. package/esm/editor/src/Extension.d.ts +31 -0
  16. package/esm/editor/src/Extension.d.ts.map +1 -0
  17. package/esm/editor/src/Extension.js +53 -0
  18. package/esm/editor/src/ExtensionManager.d.ts +32 -0
  19. package/esm/editor/src/ExtensionManager.d.ts.map +1 -0
  20. package/esm/editor/src/ExtensionManager.js +260 -0
  21. package/esm/editor/src/Mark.d.ts +23 -0
  22. package/esm/editor/src/Mark.d.ts.map +1 -0
  23. package/esm/editor/src/Mark.js +51 -0
  24. package/esm/editor/src/Node.d.ts +32 -0
  25. package/esm/editor/src/Node.d.ts.map +1 -0
  26. package/esm/editor/src/Node.js +60 -0
  27. package/esm/editor/src/commands/CommandManager.d.ts +23 -0
  28. package/esm/editor/src/commands/CommandManager.d.ts.map +1 -0
  29. package/esm/editor/src/commands/CommandManager.js +118 -0
  30. package/esm/editor/src/commands/baseCommandFactories.d.ts +3 -0
  31. package/esm/editor/src/commands/baseCommandFactories.d.ts.map +1 -0
  32. package/esm/editor/src/commands/baseCommandFactories.js +836 -0
  33. package/esm/editor/src/commands/createChainableState.d.ts +3 -0
  34. package/esm/editor/src/commands/createChainableState.d.ts.map +1 -0
  35. package/esm/editor/src/commands/createChainableState.js +29 -0
  36. package/esm/editor/src/commands/keyCommandFactories.d.ts +3 -0
  37. package/esm/editor/src/commands/keyCommandFactories.d.ts.map +1 -0
  38. package/esm/editor/src/commands/keyCommandFactories.js +10 -0
  39. package/esm/editor/src/commands/mod.d.ts +7 -0
  40. package/esm/editor/src/commands/mod.d.ts.map +1 -0
  41. package/esm/editor/src/commands/mod.js +76 -0
  42. package/esm/editor/src/commands/replaceCommandFactories.d.ts +3 -0
  43. package/esm/editor/src/commands/replaceCommandFactories.d.ts.map +1 -0
  44. package/esm/editor/src/commands/replaceCommandFactories.js +94 -0
  45. package/esm/editor/src/commands/types.d.ts +18 -0
  46. package/esm/editor/src/commands/types.d.ts.map +1 -0
  47. package/esm/editor/src/commands/types.js +1 -0
  48. package/esm/editor/src/mod.d.ts +9 -0
  49. package/esm/editor/src/mod.d.ts.map +1 -0
  50. package/esm/editor/src/mod.js +8 -0
  51. package/esm/editor/src/nodeToTreeString.d.ts +10 -0
  52. package/esm/editor/src/nodeToTreeString.d.ts.map +1 -0
  53. package/esm/editor/src/nodeToTreeString.js +74 -0
  54. package/esm/editor/src/plugins/TrackSelecionPlugin.d.ts +6 -0
  55. package/esm/editor/src/plugins/TrackSelecionPlugin.d.ts.map +1 -0
  56. package/esm/editor/src/plugins/TrackSelecionPlugin.js +24 -0
  57. package/esm/editor/src/plugins/input-rules/InputRulesPlugin.d.ts +23 -0
  58. package/esm/editor/src/plugins/input-rules/InputRulesPlugin.d.ts.map +1 -0
  59. package/esm/editor/src/plugins/input-rules/InputRulesPlugin.js +163 -0
  60. package/esm/editor/src/plugins/keymap/keymap.d.ts +11 -0
  61. package/esm/editor/src/plugins/keymap/keymap.d.ts.map +1 -0
  62. package/esm/editor/src/plugins/keymap/keymap.js +125 -0
  63. package/esm/editor/src/plugins/keymap/w3c-keyname.d.ts +4 -0
  64. package/esm/editor/src/plugins/keymap/w3c-keyname.d.ts.map +1 -0
  65. package/esm/editor/src/plugins/keymap/w3c-keyname.js +124 -0
  66. package/esm/editor/src/types.d.ts +52 -0
  67. package/esm/editor/src/types.d.ts.map +1 -0
  68. package/esm/editor/src/types.js +1 -0
  69. package/esm/editor/src/ui.d.ts +15 -0
  70. package/esm/editor/src/ui.d.ts.map +1 -0
  71. package/esm/editor/src/ui.js +16 -0
  72. package/esm/editor/src/utilities/SmartOutput.d.ts +41 -0
  73. package/esm/editor/src/utilities/SmartOutput.d.ts.map +1 -0
  74. package/esm/editor/src/utilities/SmartOutput.js +228 -0
  75. package/esm/editor/src/utilities/createNodeFromContent.d.ts +9 -0
  76. package/esm/editor/src/utilities/createNodeFromContent.d.ts.map +1 -0
  77. package/esm/editor/src/utilities/createNodeFromContent.js +32 -0
  78. package/esm/editor/src/utilities/getHtmlAttributes.d.ts +9 -0
  79. package/esm/editor/src/utilities/getHtmlAttributes.d.ts.map +1 -0
  80. package/esm/editor/src/utilities/getHtmlAttributes.js +47 -0
  81. package/esm/editor/src/utilities/getShadowRoot.d.ts +2 -0
  82. package/esm/editor/src/utilities/getShadowRoot.d.ts.map +1 -0
  83. package/esm/editor/src/utilities/getShadowRoot.js +16 -0
  84. package/esm/editor/src/utilities/mod.d.ts +6 -0
  85. package/esm/editor/src/utilities/mod.d.ts.map +1 -0
  86. package/esm/editor/src/utilities/mod.js +5 -0
  87. package/esm/editor/src/utilities/toRawTextResult.d.ts +3 -0
  88. package/esm/editor/src/utilities/toRawTextResult.d.ts.map +1 -0
  89. package/esm/editor/src/utilities/toRawTextResult.js +21 -0
  90. package/esm/extension-autocomplete/src/AutocompletePlugin.d.ts +8 -0
  91. package/esm/extension-autocomplete/src/AutocompletePlugin.d.ts.map +1 -0
  92. package/esm/extension-autocomplete/src/AutocompletePlugin.js +232 -0
  93. package/esm/extension-autocomplete/src/DefaultRenderer.d.ts +17 -0
  94. package/esm/extension-autocomplete/src/DefaultRenderer.d.ts.map +1 -0
  95. package/esm/extension-autocomplete/src/DefaultRenderer.js +137 -0
  96. package/esm/extension-autocomplete/src/ExtensionAutocomplete.d.ts +26 -0
  97. package/esm/extension-autocomplete/src/ExtensionAutocomplete.d.ts.map +1 -0
  98. package/esm/extension-autocomplete/src/ExtensionAutocomplete.js +30 -0
  99. package/esm/extension-autocomplete/src/createDefaultMatcher.d.ts +11 -0
  100. package/esm/extension-autocomplete/src/createDefaultMatcher.d.ts.map +1 -0
  101. package/esm/extension-autocomplete/src/createDefaultMatcher.js +58 -0
  102. package/esm/extension-autocomplete/src/createRegexMatcher.d.ts +4 -0
  103. package/esm/extension-autocomplete/src/createRegexMatcher.d.ts.map +1 -0
  104. package/esm/extension-autocomplete/src/createRegexMatcher.js +50 -0
  105. package/esm/extension-autocomplete/src/mod.d.ts +3 -0
  106. package/esm/extension-autocomplete/src/mod.d.ts.map +1 -0
  107. package/esm/extension-autocomplete/src/mod.js +2 -0
  108. package/esm/extension-autocomplete/src/types.d.ts +60 -0
  109. package/esm/extension-autocomplete/src/types.d.ts.map +1 -0
  110. package/esm/extension-autocomplete/src/types.js +1 -0
  111. package/esm/extension-basic-editor/src/ExtensionHtml.d.ts +15 -0
  112. package/esm/extension-basic-editor/src/ExtensionHtml.d.ts.map +1 -0
  113. package/esm/extension-basic-editor/src/ExtensionHtml.js +108 -0
  114. package/esm/extension-lsp/src/DiagnosticPlugin.d.ts +32 -0
  115. package/esm/extension-lsp/src/DiagnosticPlugin.d.ts.map +1 -0
  116. package/esm/extension-lsp/src/DiagnosticPlugin.js +131 -0
  117. package/esm/extension-lsp/src/ExtensionLsp.d.ts +25 -0
  118. package/esm/extension-lsp/src/ExtensionLsp.d.ts.map +1 -0
  119. package/esm/extension-lsp/src/ExtensionLsp.js +126 -0
  120. package/esm/extension-lsp/src/LSPClient.d.ts +56 -0
  121. package/esm/extension-lsp/src/LSPClient.d.ts.map +1 -0
  122. package/esm/extension-lsp/src/LSPClient.js +449 -0
  123. package/esm/extension-lsp/src/LspWebSocketTransport.d.ts +20 -0
  124. package/esm/extension-lsp/src/LspWebSocketTransport.d.ts.map +1 -0
  125. package/esm/extension-lsp/src/LspWebSocketTransport.js +137 -0
  126. package/esm/extension-lsp/src/computeIncrementalChanges.d.ts +8 -0
  127. package/esm/extension-lsp/src/computeIncrementalChanges.d.ts.map +1 -0
  128. package/esm/extension-lsp/src/computeIncrementalChanges.js +82 -0
  129. package/esm/extension-lsp/src/createLspAutocomplete.d.ts +23 -0
  130. package/esm/extension-lsp/src/createLspAutocomplete.d.ts.map +1 -0
  131. package/esm/extension-lsp/src/createLspAutocomplete.js +68 -0
  132. package/esm/extension-lsp/src/mod.d.ts +5 -0
  133. package/esm/extension-lsp/src/mod.d.ts.map +1 -0
  134. package/esm/extension-lsp/src/mod.js +4 -0
  135. package/esm/extension-lsp/src/types.d.ts +20 -0
  136. package/esm/extension-lsp/src/types.d.ts.map +1 -0
  137. package/esm/extension-lsp/src/types.js +1 -0
  138. package/esm/extension-lsp/src/workspace.d.ts +62 -0
  139. package/esm/extension-lsp/src/workspace.d.ts.map +1 -0
  140. package/esm/extension-lsp/src/workspace.js +168 -0
  141. package/esm/extension-markdown/src/DocumentMarkdownInlineTokenizer.d.ts +36 -0
  142. package/esm/extension-markdown/src/DocumentMarkdownInlineTokenizer.d.ts.map +1 -0
  143. package/esm/extension-markdown/src/DocumentMarkdownInlineTokenizer.js +240 -0
  144. package/esm/extension-markdown/src/DocumentMarkdownTokenizer.d.ts +26 -0
  145. package/esm/extension-markdown/src/DocumentMarkdownTokenizer.d.ts.map +1 -0
  146. package/esm/extension-markdown/src/DocumentMarkdownTokenizer.js +115 -0
  147. package/esm/extension-markdown/src/ExtensionMarkdown.d.ts +22 -0
  148. package/esm/extension-markdown/src/ExtensionMarkdown.d.ts.map +1 -0
  149. package/esm/extension-markdown/src/ExtensionMarkdown.js +48 -0
  150. package/esm/extension-markdown/src/MarkdownParser.d.ts +61 -0
  151. package/esm/extension-markdown/src/MarkdownParser.d.ts.map +1 -0
  152. package/esm/extension-markdown/src/MarkdownParser.js +249 -0
  153. package/esm/extension-markdown/src/MarkdownSerializer.d.ts +42 -0
  154. package/esm/extension-markdown/src/MarkdownSerializer.d.ts.map +1 -0
  155. package/esm/extension-markdown/src/MarkdownSerializer.js +325 -0
  156. package/esm/extension-markdown/src/PositionMapper.d.ts +15 -0
  157. package/esm/extension-markdown/src/PositionMapper.d.ts.map +1 -0
  158. package/esm/extension-markdown/src/PositionMapper.js +100 -0
  159. package/esm/extension-markdown/src/TokenSource.d.ts +11 -0
  160. package/esm/extension-markdown/src/TokenSource.d.ts.map +1 -0
  161. package/esm/extension-markdown/src/TokenSource.js +39 -0
  162. package/esm/extension-markdown/src/mdToPmConverter.d.ts +5 -0
  163. package/esm/extension-markdown/src/mdToPmConverter.d.ts.map +1 -0
  164. package/esm/extension-markdown/src/mdToPmConverter.js +111 -0
  165. package/esm/extension-markdown/src/pmToMdConverter.d.ts +16 -0
  166. package/esm/extension-markdown/src/pmToMdConverter.d.ts.map +1 -0
  167. package/esm/extension-markdown/src/pmToMdConverter.js +433 -0
  168. package/esm/extension-markdown/src/token_handlers/basic_token_handlers.d.ts +4 -0
  169. package/esm/extension-markdown/src/token_handlers/basic_token_handlers.d.ts.map +1 -0
  170. package/esm/extension-markdown/src/token_handlers/basic_token_handlers.js +151 -0
  171. package/esm/extension-markdown/src/token_handlers/footnote_token_handlers.d.ts +3 -0
  172. package/esm/extension-markdown/src/token_handlers/footnote_token_handlers.d.ts.map +1 -0
  173. package/esm/extension-markdown/src/token_handlers/footnote_token_handlers.js +34 -0
  174. package/esm/extension-markdown/src/token_handlers/inline_token_handlers.d.ts +6 -0
  175. package/esm/extension-markdown/src/token_handlers/inline_token_handlers.d.ts.map +1 -0
  176. package/esm/extension-markdown/src/token_handlers/inline_token_handlers.js +380 -0
  177. package/esm/extension-markdown/src/token_handlers/lists_token_handlers.d.ts +3 -0
  178. package/esm/extension-markdown/src/token_handlers/lists_token_handlers.d.ts.map +1 -0
  179. package/esm/extension-markdown/src/token_handlers/lists_token_handlers.js +323 -0
  180. package/esm/extension-markdown/src/token_handlers/table_token_handlers.d.ts +9 -0
  181. package/esm/extension-markdown/src/token_handlers/table_token_handlers.d.ts.map +1 -0
  182. package/esm/extension-markdown/src/token_handlers/table_token_handlers.js +308 -0
  183. package/esm/extension-markdown/src/treeSitterTokenizer.d.ts +5 -0
  184. package/esm/extension-markdown/src/treeSitterTokenizer.d.ts.map +1 -0
  185. package/esm/extension-markdown/src/treeSitterTokenizer.js +769 -0
  186. package/esm/extension-markdown/src/types.d.ts +28 -0
  187. package/esm/extension-markdown/src/types.d.ts.map +1 -0
  188. package/esm/extension-markdown/src/types.js +131 -0
  189. package/esm/extension-markdown/src/utils.d.ts +8 -0
  190. package/esm/extension-markdown/src/utils.d.ts.map +1 -0
  191. package/esm/extension-markdown/src/utils.js +86 -0
  192. package/esm/package.json +3 -0
  193. package/esm/tree-sitter-shim/src/main.d.ts +15 -0
  194. package/esm/tree-sitter-shim/src/main.d.ts.map +1 -0
  195. package/esm/tree-sitter-shim/src/main.js +25 -0
  196. package/esm/tree-sitter-shim/src/tree_sitter/node.d.ts +6 -0
  197. package/esm/tree-sitter-shim/src/tree_sitter/node.d.ts.map +1 -0
  198. package/esm/tree-sitter-shim/src/tree_sitter/node.js +1 -0
  199. package/esm/tree-sitter-shim/src/tree_sitter/parser.d.ts +7 -0
  200. package/esm/tree-sitter-shim/src/tree_sitter/parser.d.ts.map +1 -0
  201. package/esm/tree-sitter-shim/src/tree_sitter/parser.js +5 -0
  202. package/esm/tree-sitter-shim/src/tree_sitter/tree.d.ts +6 -0
  203. package/esm/tree-sitter-shim/src/tree_sitter/tree.d.ts.map +1 -0
  204. package/esm/tree-sitter-shim/src/tree_sitter/tree.js +1 -0
  205. package/esm/wasm/src/mod.d.ts +12 -0
  206. package/esm/wasm/src/mod.d.ts.map +1 -0
  207. package/esm/wasm/src/mod.js +48 -0
  208. package/esm/wasm/wasm.d.ts +138 -0
  209. package/esm/wasm/wasm.d.ts.map +1 -0
  210. package/esm/wasm/wasm.js +120 -0
  211. package/package.json +31 -0
@@ -0,0 +1,100 @@
1
+ function findFirstLetterPosition(node, startPos) {
2
+ let firstLetterPos = -1;
3
+ let textLen = 0;
4
+ node.descendants((child, posInParent) => {
5
+ if (child.isText && child.text && child.text.length > 0) {
6
+ firstLetterPos = startPos + posInParent + 1; // First char of first text node
7
+ textLen = child.text.length;
8
+ return false; // Stop
9
+ }
10
+ return true;
11
+ });
12
+ if (firstLetterPos === -1) {
13
+ return null;
14
+ }
15
+ return [firstLetterPos, textLen];
16
+ }
17
+ export class PositionMapper {
18
+ constructor(editor, rawTextMap) {
19
+ Object.defineProperty(this, "rawTextMap", {
20
+ enumerable: true,
21
+ configurable: true,
22
+ writable: true,
23
+ value: rawTextMap
24
+ });
25
+ Object.defineProperty(this, "rawTextArr", {
26
+ enumerable: true,
27
+ configurable: true,
28
+ writable: true,
29
+ value: void 0
30
+ });
31
+ Object.defineProperty(this, "doc", {
32
+ enumerable: true,
33
+ configurable: true,
34
+ writable: true,
35
+ value: void 0
36
+ });
37
+ this.doc = editor.state.doc;
38
+ this.rawTextArr = [];
39
+ for (const item of rawTextMap) {
40
+ if (item.nodeIdx > 0) {
41
+ this.rawTextArr.push({
42
+ nodeIdx: item.nodeIdx,
43
+ maxNodeIdx: item.nodeIdx,
44
+ targetPos: item.targetPos,
45
+ targetRow: item.targetRow,
46
+ targetCol: item.targetCol,
47
+ });
48
+ }
49
+ }
50
+ this.rawTextArr.sort((b, a) => b.nodeIdx - a.nodeIdx);
51
+ for (let i = 0; i < this.rawTextArr.length; i++) {
52
+ const next = i + 1;
53
+ if (next < this.rawTextArr.length) {
54
+ this.rawTextArr[i].maxNodeIdx = this.rawTextArr[next].nodeIdx - 1;
55
+ }
56
+ else {
57
+ this.rawTextArr[i].maxNodeIdx = this.doc.nodeSize;
58
+ }
59
+ }
60
+ }
61
+ toRawTextPos(pos) {
62
+ for (let i = 0; i < this.rawTextArr.length; i++) {
63
+ const item = this.rawTextArr[i];
64
+ if (pos >= item.nodeIdx && pos <= item.maxNodeIdx) {
65
+ return item.targetPos + pos - item.nodeIdx;
66
+ }
67
+ }
68
+ return -1;
69
+ }
70
+ toRawTextLspPos(pos) {
71
+ for (let i = 0; i < this.rawTextArr.length; i++) {
72
+ const item = this.rawTextArr[i];
73
+ if (pos >= item.nodeIdx && pos <= item.maxNodeIdx) {
74
+ return {
75
+ line: item.targetRow,
76
+ character: item.targetCol + pos - item.nodeIdx,
77
+ };
78
+ }
79
+ }
80
+ return { line: 0, character: 0 };
81
+ }
82
+ fromLineChar(line, character) {
83
+ for (let i = 0; i < this.rawTextArr.length; i++) {
84
+ const item = this.rawTextArr[i];
85
+ const len = item.maxNodeIdx - item.nodeIdx + 1;
86
+ if (item.targetRow === line) {
87
+ if (character >= item.targetCol && character < item.targetCol + len) {
88
+ const offset = character - item.targetCol;
89
+ return item.nodeIdx + offset;
90
+ }
91
+ const nextItem = this.rawTextArr[i + 1];
92
+ const isLastInRow = !nextItem || nextItem.targetRow > item.targetRow;
93
+ if (isLastInRow && character >= item.targetCol + len) {
94
+ return item.maxNodeIdx;
95
+ }
96
+ }
97
+ }
98
+ return -1;
99
+ }
100
+ }
@@ -0,0 +1,11 @@
1
+ export declare class TokenSource<K> {
2
+ private tokens;
3
+ private currentPos;
4
+ constructor(tokens: Array<K>);
5
+ get pos(): number;
6
+ iterate(start: number, callback: (token: K, tokenNo: number) => void): void;
7
+ append(tokens: Array<K>): number;
8
+ trim(pos: number): void;
9
+ rewind(tokenNo?: number): void;
10
+ }
11
+ //# sourceMappingURL=TokenSource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenSource.d.ts","sourceRoot":"","sources":["../../../src/extension-markdown/src/TokenSource.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAW,CAAC,CAAC;IAGZ,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,UAAU,CAAS;gBAEP,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAIpC,IAAI,GAAG,WAEN;IAED,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI;IAWpE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAKvB,IAAI,CAAC,GAAG,EAAE,MAAM;IAIhB,MAAM,CAAC,OAAO,GAAE,MAAW;CAM5B"}
@@ -0,0 +1,39 @@
1
+ export class TokenSource {
2
+ constructor(tokens) {
3
+ Object.defineProperty(this, "tokens", {
4
+ enumerable: true,
5
+ configurable: true,
6
+ writable: true,
7
+ value: tokens
8
+ });
9
+ Object.defineProperty(this, "currentPos", {
10
+ enumerable: true,
11
+ configurable: true,
12
+ writable: true,
13
+ value: void 0
14
+ });
15
+ this.currentPos = 0;
16
+ }
17
+ get pos() {
18
+ return this.currentPos;
19
+ }
20
+ iterate(start, callback) {
21
+ for (this.currentPos = start; this.currentPos < this.tokens.length; this.currentPos++) {
22
+ const token = this.tokens[this.currentPos];
23
+ callback(token, this.currentPos);
24
+ }
25
+ }
26
+ append(tokens) {
27
+ this.tokens.push(...tokens);
28
+ return this.tokens.length - tokens.length;
29
+ }
30
+ trim(pos) {
31
+ this.tokens.splice(pos);
32
+ }
33
+ rewind(tokenNo = -1) {
34
+ if (tokenNo < 0) {
35
+ throw new RangeError('Invalid rewind pos: ' + tokenNo);
36
+ }
37
+ this.currentPos = tokenNo;
38
+ }
39
+ }
@@ -0,0 +1,5 @@
1
+ import { Node, Schema } from 'prosemirror-model';
2
+ import { MdConfig } from './ExtensionMarkdown.js';
3
+ export declare function mdToPmConverter(buffer: Uint8Array, config: MdConfig, schema: Schema): Promise<Node>;
4
+ export declare function mdToPmConverterText(content: string, config: MdConfig, schema: Schema): Promise<Node>;
5
+ //# sourceMappingURL=mdToPmConverter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mdToPmConverter.d.ts","sourceRoot":"","sources":["../../../src/extension-markdown/src/mdToPmConverter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAelD,wBAAsB,eAAe,CACnC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAGf;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CA2Gf"}
@@ -0,0 +1,111 @@
1
+ import { DOMParser } from 'prosemirror-model';
2
+ import { elementFromString } from '../../extension-basic-editor/src/ExtensionHtml.js';
3
+ import { MarkdownParser } from './MarkdownParser.js';
4
+ import { sitterTokenizer } from './treeSitterTokenizer.js';
5
+ function listIsTight(tokens, i) {
6
+ while (++i < tokens.length) {
7
+ if (tokens[i].type != 'list_item_open')
8
+ return tokens[i].hidden;
9
+ }
10
+ return false;
11
+ }
12
+ export async function mdToPmConverter(buffer, config, schema) {
13
+ const content = new TextDecoder().decode(buffer);
14
+ return mdToPmConverterText(content, config, schema);
15
+ }
16
+ export async function mdToPmConverterText(content, config, schema) {
17
+ const tokenizer = await sitterTokenizer(config.cdnUrl);
18
+ const defaultMarkdownParser = new MarkdownParser(schema, tokenizer, {
19
+ frontmatter: {
20
+ node: 'frontmatter',
21
+ },
22
+ blockquote: { block: 'blockquote' },
23
+ paragraph: { block: 'paragraph' },
24
+ task_item: { block: 'task_item' },
25
+ task_list: {
26
+ block: 'task_list',
27
+ },
28
+ list_item: { block: 'list_item' },
29
+ bullet_list: {
30
+ block: 'bullet_list',
31
+ getAttrs: (_, tokens, i) => ({ tight: listIsTight(tokens, i) }),
32
+ },
33
+ ordered_list: {
34
+ block: 'ordered_list',
35
+ getAttrs: (tok, tokens, i) => ({
36
+ start: +tok.attrGet('start') || 1,
37
+ tight: listIsTight(tokens, i),
38
+ }),
39
+ },
40
+ dl: {
41
+ block: 'dl',
42
+ },
43
+ dt: {
44
+ block: 'dt',
45
+ },
46
+ dd: {
47
+ block: 'dd',
48
+ },
49
+ heading: {
50
+ block: 'heading',
51
+ getAttrs: (tok) => ({ level: +tok.tag.slice(1) }),
52
+ },
53
+ code_block: { block: 'code_block', noCloseToken: true },
54
+ fence: {
55
+ block: 'code_block',
56
+ getAttrs: (tok) => ({ lang: tok.attrGet('lang') || undefined }),
57
+ noCloseToken: true,
58
+ },
59
+ hr: { node: 'hr' },
60
+ image: {
61
+ node: 'image',
62
+ getAttrs: (tok) => {
63
+ const firstChild = tok.children ? tok.children[0] : undefined;
64
+ return {
65
+ src: tok.attrGet('src'),
66
+ title: tok.attrGet('title') || null,
67
+ alt: firstChild?.content || null,
68
+ };
69
+ },
70
+ },
71
+ hardbreak: { node: 'br' },
72
+ em: { mark: 'em' },
73
+ underline: { mark: 'underline' },
74
+ strong: { mark: 'strong' },
75
+ strike: { mark: 'strike' },
76
+ link: {
77
+ mark: 'link',
78
+ getAttrs: (tok) => ({
79
+ href: tok.attrGet('href'),
80
+ title: tok.attrGet('title') || null,
81
+ }),
82
+ },
83
+ code: { mark: 'code' },
84
+ html_block: {
85
+ custom: (state, token, tokens, i) => {
86
+ const parser = DOMParser.fromSchema(schema);
87
+ const parsed = parser.parse(elementFromString(token.content));
88
+ // state.importNodes(parsed.children); // breaks lsptoy example
89
+ },
90
+ },
91
+ footnote_ref: {
92
+ block: 'code_block',
93
+ },
94
+ table: {
95
+ block: 'table',
96
+ },
97
+ tr: {
98
+ block: 'table_row',
99
+ },
100
+ td: {
101
+ block: 'table_cell',
102
+ },
103
+ th: {
104
+ block: 'table_header',
105
+ },
106
+ thead: {
107
+ ignore: true,
108
+ },
109
+ });
110
+ return defaultMarkdownParser.parse(content);
111
+ }
@@ -0,0 +1,16 @@
1
+ import { Node, Schema } from 'prosemirror-model';
2
+ import { type CoreEditor, RawTextResult, SourceMap } from '../../editor/src/mod.js';
3
+ import { MdConfig } from './ExtensionMarkdown.js';
4
+ export interface MdContext {
5
+ meta: Record<string, any>;
6
+ }
7
+ export declare function pmToMdConverter(document: Node, config: MdConfig, schema: Schema, editor: CoreEditor): Promise<Uint8Array>;
8
+ export interface MarkdownResult extends RawTextResult {
9
+ debugMap: Record<number, {
10
+ targetRow: number;
11
+ targetCol: number;
12
+ }>;
13
+ sourceMap?: SourceMap;
14
+ }
15
+ export declare function syncPmToMdConverter(document: Node, config: MdConfig, schema: Schema, editor: CoreEditor): MarkdownResult;
16
+ //# sourceMappingURL=pmToMdConverter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pmToMdConverter.d.ts","sourceRoot":"","sources":["../../../src/extension-markdown/src/pmToMdConverter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,IAAI,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAIjE,OAAO,EACL,KAAK,UAAU,EAIf,aAAa,EACb,SAAS,EACV,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AA+ClD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3B;AAkCD,wBAAsB,eAAe,CACnC,QAAQ,EAAE,IAAI,EACd,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED,MAAM,WAAW,cAAe,SAAQ,aAAa;IACnD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnE,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,IAAI,EACd,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,GACjB,cAAc,CA+ahB"}