@nocturnium/svelte-ide 1.0.0 → 1.0.2

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 (96) hide show
  1. package/README.md +43 -47
  2. package/dist/components/agents/AgentActivityPanel.svelte +3 -1
  3. package/dist/components/agents/AgentAvatar.svelte +127 -35
  4. package/dist/components/agents/AgentCursor.svelte +15 -5
  5. package/dist/components/agents/AgentPresenceBar.svelte +7 -2
  6. package/dist/components/ai/AIConversationList.svelte +39 -34
  7. package/dist/components/ai/AIInlineEdit.svelte +1 -3
  8. package/dist/components/ai/AIMessage.svelte +5 -5
  9. package/dist/components/ai/AIMessageActions.svelte +18 -3
  10. package/dist/components/ai/AIMessageContent.svelte +22 -20
  11. package/dist/components/ai/AIPanel.svelte +17 -9
  12. package/dist/components/ai/AISuggestionWidget.svelte +1 -3
  13. package/dist/components/ai/AIToolCallDisplay.svelte +10 -14
  14. package/dist/components/core/Badge.svelte +9 -1
  15. package/dist/components/core/ConnectionStatus.svelte +73 -68
  16. package/dist/components/core/ErrorBoundary.svelte +56 -56
  17. package/dist/components/core/ErrorBoundary.svelte.d.ts +5 -5
  18. package/dist/components/core/Icon.svelte +22 -11
  19. package/dist/components/core/ResizeHandle.svelte +1 -1
  20. package/dist/components/core/Tooltip.svelte +1 -7
  21. package/dist/components/editor/AIFocusLayer.svelte +15 -7
  22. package/dist/components/editor/Breadcrumbs.svelte +18 -6
  23. package/dist/components/editor/BreakpointLayer.svelte +51 -60
  24. package/dist/components/editor/CognitiveLoadMeter.svelte +4 -2
  25. package/dist/components/editor/CollaborativeEditor.svelte +1 -5
  26. package/dist/components/editor/CommandPalette.svelte +1 -4
  27. package/dist/components/editor/ComplexityLayer.svelte +8 -6
  28. package/dist/components/editor/ConflictZoneLayer.svelte +2 -8
  29. package/dist/components/editor/ContextLens.svelte +1 -4
  30. package/dist/components/editor/CustomEditor.svelte +85 -41
  31. package/dist/components/editor/DebugConsole.svelte +8 -17
  32. package/dist/components/editor/EchoCursorLayer.svelte +3 -1
  33. package/dist/components/editor/EditorGutter.svelte +8 -2
  34. package/dist/components/editor/EditorLines.svelte +6 -3
  35. package/dist/components/editor/EditorPane.svelte +1 -6
  36. package/dist/components/editor/EditorSelections.svelte +29 -11
  37. package/dist/components/editor/FileExplorer.svelte +26 -4
  38. package/dist/components/editor/FileIcon.svelte +3 -1
  39. package/dist/components/editor/FindReplace.svelte +16 -4
  40. package/dist/components/editor/GhostBracketLayer.svelte +2 -2
  41. package/dist/components/editor/GitBlameLayer.svelte +2 -1
  42. package/dist/components/editor/InlineDiagnosticsLayer.svelte +4 -13
  43. package/dist/components/editor/InlineDiffLayer.svelte +18 -9
  44. package/dist/components/editor/Minimap.svelte +16 -9
  45. package/dist/components/editor/PluginPreviewSandbox.svelte +3 -2
  46. package/dist/components/editor/ProblemsPanel.svelte +11 -35
  47. package/dist/components/editor/QuickActionsMenu.svelte +5 -14
  48. package/dist/components/editor/SnippetPalette.svelte +11 -12
  49. package/dist/components/editor/StructureMap.svelte +2 -1
  50. package/dist/components/editor/SymbolOutline.svelte +14 -19
  51. package/dist/components/editor/TimelineScrubber.svelte +7 -6
  52. package/dist/components/editor/core/complexity-analyzer.js +42 -12
  53. package/dist/components/editor/core/conflict-predictor.js +2 -4
  54. package/dist/components/editor/core/folding.d.ts +9 -0
  55. package/dist/components/editor/core/folding.js +40 -5
  56. package/dist/components/editor/core/multi-cursor.js +4 -8
  57. package/dist/components/editor/core/navigation.js +2 -6
  58. package/dist/components/editor/core/quick-actions.js +22 -17
  59. package/dist/components/editor/core/search.js +2 -6
  60. package/dist/components/editor/core/semantic-analyzer.js +1 -3
  61. package/dist/components/editor/core/snippet-manager.js +4 -3
  62. package/dist/components/editor/core/state.js +2 -2
  63. package/dist/components/editor/core/timeline.js +1 -3
  64. package/dist/components/editor/editor-input.js +9 -6
  65. package/dist/components/editor/editor-multicursor.js +2 -2
  66. package/dist/components/editor/tokenizer/languages/css.js +146 -24
  67. package/dist/components/editor/tokenizer/languages/go.js +76 -13
  68. package/dist/components/editor/tokenizer/languages/javascript.d.ts +13 -2
  69. package/dist/components/editor/tokenizer/languages/javascript.js +278 -84
  70. package/dist/components/editor/tokenizer/languages/python.js +116 -19
  71. package/dist/components/editor/tokenizer/languages/svelte.js +20 -7
  72. package/dist/components/layout/IDELayout.svelte +6 -2
  73. package/dist/components/layout/StatusBar.svelte +32 -20
  74. package/dist/components/lsp/AutocompleteWidget.svelte +19 -19
  75. package/dist/components/lsp/DiagnosticMarker.svelte +61 -52
  76. package/dist/components/lsp/DiagnosticsPanel.svelte +45 -27
  77. package/dist/components/lsp/HoverTooltip.svelte +56 -61
  78. package/dist/components/lsp/LSPEditor.svelte +7 -18
  79. package/dist/components/lsp/SignatureHelpWidget.svelte +12 -9
  80. package/dist/components/plugins/PluginCard.svelte +3 -13
  81. package/dist/components/plugins/PluginProposalForm.svelte +19 -31
  82. package/dist/components/vfs/LockConflictDialog.svelte +112 -45
  83. package/dist/components/vfs/LockIndicator.svelte +0 -1
  84. package/dist/components/vfs/LockOverlay.svelte +53 -53
  85. package/dist/components/vfs/LockOverlay.svelte.d.ts +5 -5
  86. package/dist/components/vfs/VersionConflictDialog.svelte +107 -77
  87. package/dist/services/error-handling.js +1 -7
  88. package/dist/services/mock-ai.js +9 -7
  89. package/dist/stores/agents.svelte.js +50 -10
  90. package/dist/stores/ai.svelte.js +66 -18
  91. package/dist/stores/collaboration.svelte.js +70 -14
  92. package/dist/stores/editor.svelte.js +50 -10
  93. package/dist/stores/plugin.svelte.js +60 -12
  94. package/dist/stores/vfs.svelte.js +77 -19
  95. package/dist/styles/theme.css +16 -7
  96. package/package.json +186 -1
@@ -4,28 +4,128 @@
4
4
  import { createToken } from '../base';
5
5
  // CSS properties (common ones)
6
6
  const properties = new Set([
7
- 'align-content', 'align-items', 'align-self', 'animation', 'animation-delay',
8
- 'animation-direction', 'animation-duration', 'animation-fill-mode', 'animation-iteration-count',
9
- 'animation-name', 'animation-play-state', 'animation-timing-function', 'background',
10
- 'background-attachment', 'background-blend-mode', 'background-clip', 'background-color',
11
- 'background-image', 'background-origin', 'background-position', 'background-repeat',
12
- 'background-size', 'border', 'border-bottom', 'border-color', 'border-left', 'border-radius',
13
- 'border-right', 'border-style', 'border-top', 'border-width', 'bottom', 'box-shadow',
14
- 'box-sizing', 'color', 'content', 'cursor', 'display', 'filter', 'flex', 'flex-basis',
15
- 'flex-direction', 'flex-flow', 'flex-grow', 'flex-shrink', 'flex-wrap', 'float', 'font',
16
- 'font-family', 'font-size', 'font-style', 'font-weight', 'gap', 'grid', 'grid-area',
17
- 'grid-column', 'grid-gap', 'grid-row', 'grid-template', 'grid-template-areas',
18
- 'grid-template-columns', 'grid-template-rows', 'height', 'justify-content', 'justify-items',
19
- 'justify-self', 'left', 'letter-spacing', 'line-height', 'list-style', 'margin',
20
- 'margin-bottom', 'margin-left', 'margin-right', 'margin-top', 'max-height', 'max-width',
21
- 'min-height', 'min-width', 'object-fit', 'opacity', 'order', 'outline', 'overflow',
22
- 'overflow-x', 'overflow-y', 'padding', 'padding-bottom', 'padding-left', 'padding-right',
23
- 'padding-top', 'place-content', 'place-items', 'place-self', 'pointer-events', 'position',
24
- 'resize', 'right', 'row-gap', 'text-align', 'text-decoration', 'text-indent', 'text-overflow',
25
- 'text-shadow', 'text-transform', 'top', 'transform', 'transform-origin', 'transition',
26
- 'transition-delay', 'transition-duration', 'transition-property', 'transition-timing-function',
27
- 'user-select', 'vertical-align', 'visibility', 'white-space', 'width', 'word-break',
28
- 'word-spacing', 'word-wrap', 'z-index'
7
+ 'align-content',
8
+ 'align-items',
9
+ 'align-self',
10
+ 'animation',
11
+ 'animation-delay',
12
+ 'animation-direction',
13
+ 'animation-duration',
14
+ 'animation-fill-mode',
15
+ 'animation-iteration-count',
16
+ 'animation-name',
17
+ 'animation-play-state',
18
+ 'animation-timing-function',
19
+ 'background',
20
+ 'background-attachment',
21
+ 'background-blend-mode',
22
+ 'background-clip',
23
+ 'background-color',
24
+ 'background-image',
25
+ 'background-origin',
26
+ 'background-position',
27
+ 'background-repeat',
28
+ 'background-size',
29
+ 'border',
30
+ 'border-bottom',
31
+ 'border-color',
32
+ 'border-left',
33
+ 'border-radius',
34
+ 'border-right',
35
+ 'border-style',
36
+ 'border-top',
37
+ 'border-width',
38
+ 'bottom',
39
+ 'box-shadow',
40
+ 'box-sizing',
41
+ 'color',
42
+ 'content',
43
+ 'cursor',
44
+ 'display',
45
+ 'filter',
46
+ 'flex',
47
+ 'flex-basis',
48
+ 'flex-direction',
49
+ 'flex-flow',
50
+ 'flex-grow',
51
+ 'flex-shrink',
52
+ 'flex-wrap',
53
+ 'float',
54
+ 'font',
55
+ 'font-family',
56
+ 'font-size',
57
+ 'font-style',
58
+ 'font-weight',
59
+ 'gap',
60
+ 'grid',
61
+ 'grid-area',
62
+ 'grid-column',
63
+ 'grid-gap',
64
+ 'grid-row',
65
+ 'grid-template',
66
+ 'grid-template-areas',
67
+ 'grid-template-columns',
68
+ 'grid-template-rows',
69
+ 'height',
70
+ 'justify-content',
71
+ 'justify-items',
72
+ 'justify-self',
73
+ 'left',
74
+ 'letter-spacing',
75
+ 'line-height',
76
+ 'list-style',
77
+ 'margin',
78
+ 'margin-bottom',
79
+ 'margin-left',
80
+ 'margin-right',
81
+ 'margin-top',
82
+ 'max-height',
83
+ 'max-width',
84
+ 'min-height',
85
+ 'min-width',
86
+ 'object-fit',
87
+ 'opacity',
88
+ 'order',
89
+ 'outline',
90
+ 'overflow',
91
+ 'overflow-x',
92
+ 'overflow-y',
93
+ 'padding',
94
+ 'padding-bottom',
95
+ 'padding-left',
96
+ 'padding-right',
97
+ 'padding-top',
98
+ 'place-content',
99
+ 'place-items',
100
+ 'place-self',
101
+ 'pointer-events',
102
+ 'position',
103
+ 'resize',
104
+ 'right',
105
+ 'row-gap',
106
+ 'text-align',
107
+ 'text-decoration',
108
+ 'text-indent',
109
+ 'text-overflow',
110
+ 'text-shadow',
111
+ 'text-transform',
112
+ 'top',
113
+ 'transform',
114
+ 'transform-origin',
115
+ 'transition',
116
+ 'transition-delay',
117
+ 'transition-duration',
118
+ 'transition-property',
119
+ 'transition-timing-function',
120
+ 'user-select',
121
+ 'vertical-align',
122
+ 'visibility',
123
+ 'white-space',
124
+ 'width',
125
+ 'word-break',
126
+ 'word-spacing',
127
+ 'word-wrap',
128
+ 'z-index'
29
129
  ]);
30
130
  export class CSSTokenizer {
31
131
  language = 'css';
@@ -141,11 +241,33 @@ export class CSSTokenizer {
141
241
  if (keywordMatch) {
142
242
  const word = keywordMatch[0];
143
243
  // Common CSS keywords
144
- if (['inherit', 'initial', 'unset', 'revert', 'none', 'auto', 'transparent', 'currentColor', 'important'].includes(word)) {
244
+ if ([
245
+ 'inherit',
246
+ 'initial',
247
+ 'unset',
248
+ 'revert',
249
+ 'none',
250
+ 'auto',
251
+ 'transparent',
252
+ 'currentColor',
253
+ 'important'
254
+ ].includes(word)) {
145
255
  return createToken('keyword', word, pos);
146
256
  }
147
257
  // Color names
148
- if (['red', 'blue', 'green', 'white', 'black', 'yellow', 'orange', 'purple', 'pink', 'gray', 'grey'].includes(word)) {
258
+ if ([
259
+ 'red',
260
+ 'blue',
261
+ 'green',
262
+ 'white',
263
+ 'black',
264
+ 'yellow',
265
+ 'orange',
266
+ 'purple',
267
+ 'pink',
268
+ 'gray',
269
+ 'grey'
270
+ ].includes(word)) {
149
271
  return createToken('constant', word, pos);
150
272
  }
151
273
  return createToken('text', word, pos);
@@ -4,25 +4,88 @@
4
4
  import { createToken } from '../base';
5
5
  // Go keywords
6
6
  const keywords = new Set([
7
- 'break', 'case', 'chan', 'const', 'continue', 'default', 'defer', 'else',
8
- 'fallthrough', 'for', 'func', 'go', 'goto', 'if', 'import', 'interface',
9
- 'map', 'package', 'range', 'return', 'select', 'struct', 'switch', 'type', 'var'
7
+ 'break',
8
+ 'case',
9
+ 'chan',
10
+ 'const',
11
+ 'continue',
12
+ 'default',
13
+ 'defer',
14
+ 'else',
15
+ 'fallthrough',
16
+ 'for',
17
+ 'func',
18
+ 'go',
19
+ 'goto',
20
+ 'if',
21
+ 'import',
22
+ 'interface',
23
+ 'map',
24
+ 'package',
25
+ 'range',
26
+ 'return',
27
+ 'select',
28
+ 'struct',
29
+ 'switch',
30
+ 'type',
31
+ 'var'
10
32
  ]);
11
33
  const controlKeywords = new Set([
12
- 'break', 'case', 'continue', 'default', 'defer', 'else', 'fallthrough',
13
- 'for', 'go', 'goto', 'if', 'range', 'return', 'select', 'switch'
14
- ]);
15
- const builtins = new Set([
16
- 'true', 'false', 'nil', 'iota'
34
+ 'break',
35
+ 'case',
36
+ 'continue',
37
+ 'default',
38
+ 'defer',
39
+ 'else',
40
+ 'fallthrough',
41
+ 'for',
42
+ 'go',
43
+ 'goto',
44
+ 'if',
45
+ 'range',
46
+ 'return',
47
+ 'select',
48
+ 'switch'
17
49
  ]);
50
+ const builtins = new Set(['true', 'false', 'nil', 'iota']);
18
51
  const builtinFunctions = new Set([
19
- 'append', 'cap', 'close', 'complex', 'copy', 'delete', 'imag', 'len',
20
- 'make', 'new', 'panic', 'print', 'println', 'real', 'recover'
52
+ 'append',
53
+ 'cap',
54
+ 'close',
55
+ 'complex',
56
+ 'copy',
57
+ 'delete',
58
+ 'imag',
59
+ 'len',
60
+ 'make',
61
+ 'new',
62
+ 'panic',
63
+ 'print',
64
+ 'println',
65
+ 'real',
66
+ 'recover'
21
67
  ]);
22
68
  const builtinTypes = new Set([
23
- 'bool', 'byte', 'complex64', 'complex128', 'error', 'float32', 'float64',
24
- 'int', 'int8', 'int16', 'int32', 'int64', 'rune', 'string',
25
- 'uint', 'uint8', 'uint16', 'uint32', 'uint64', 'uintptr'
69
+ 'bool',
70
+ 'byte',
71
+ 'complex64',
72
+ 'complex128',
73
+ 'error',
74
+ 'float32',
75
+ 'float64',
76
+ 'int',
77
+ 'int8',
78
+ 'int16',
79
+ 'int32',
80
+ 'int64',
81
+ 'rune',
82
+ 'string',
83
+ 'uint',
84
+ 'uint8',
85
+ 'uint16',
86
+ 'uint32',
87
+ 'uint64',
88
+ 'uintptr'
26
89
  ]);
27
90
  export class GoTokenizer {
28
91
  language = 'go';
@@ -45,8 +45,19 @@ export declare class JavaScriptTokenizer {
45
45
  */
46
46
  private tryMatchRegex;
47
47
  private tokenizeString;
48
- private tokenizeTemplateLiteral;
49
- private tokenizeTemplateLiteralContinuation;
48
+ /**
49
+ * Scan the string portion of a template literal, starting at `startPos`. Emits
50
+ * one `string.template` token for the run of literal characters and stops at one
51
+ * of three boundaries:
52
+ * - a closing backtick → ends the literal (clears template state);
53
+ * - a `${` → emits the `${` delimiter and enters interpolation
54
+ * (templateDepth = 1) so the expression is tokenized as code by the caller;
55
+ * - end of line → the literal spans lines and continues next line.
56
+ *
57
+ * `isStart` is true when this is the opening backtick (vs. a continuation of a
58
+ * multi-line literal or the resumption after a `${…}` interpolation).
59
+ */
60
+ private scanTemplateString;
50
61
  private tokenizeJSXTag;
51
62
  }
52
63
  export declare function createJavaScriptTokenizer(): JavaScriptTokenizer;