agent-ide 0.1.6 → 0.1.8

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 (98) hide show
  1. package/dist/core/analysis/complexity-analyzer.d.ts.map +1 -1
  2. package/dist/core/analysis/complexity-analyzer.js +3 -2
  3. package/dist/core/analysis/complexity-analyzer.js.map +1 -1
  4. package/dist/core/analysis/dead-code-detector.d.ts +34 -10
  5. package/dist/core/analysis/dead-code-detector.d.ts.map +1 -1
  6. package/dist/core/analysis/dead-code-detector.js +121 -82
  7. package/dist/core/analysis/dead-code-detector.js.map +1 -1
  8. package/dist/core/analysis/index.d.ts +1 -1
  9. package/dist/core/analysis/index.d.ts.map +1 -1
  10. package/dist/core/dependency/dependency-analyzer.d.ts.map +1 -1
  11. package/dist/core/dependency/dependency-analyzer.js +11 -4
  12. package/dist/core/dependency/dependency-analyzer.js.map +1 -1
  13. package/dist/core/indexing/index-engine.d.ts +9 -0
  14. package/dist/core/indexing/index-engine.d.ts.map +1 -1
  15. package/dist/core/indexing/index-engine.js +60 -1
  16. package/dist/core/indexing/index-engine.js.map +1 -1
  17. package/dist/core/move/import-resolver.d.ts +8 -0
  18. package/dist/core/move/import-resolver.d.ts.map +1 -1
  19. package/dist/core/move/import-resolver.js +62 -1
  20. package/dist/core/move/import-resolver.js.map +1 -1
  21. package/dist/core/move/move-service.d.ts +9 -0
  22. package/dist/core/move/move-service.d.ts.map +1 -1
  23. package/dist/core/move/move-service.js +105 -8
  24. package/dist/core/move/move-service.js.map +1 -1
  25. package/dist/core/move/types.d.ts +1 -1
  26. package/dist/core/move/types.d.ts.map +1 -1
  27. package/dist/core/refactor/extract-function.d.ts +26 -4
  28. package/dist/core/refactor/extract-function.d.ts.map +1 -1
  29. package/dist/core/refactor/extract-function.js +300 -48
  30. package/dist/core/refactor/extract-function.js.map +1 -1
  31. package/dist/core/rename/reference-updater.d.ts +10 -10
  32. package/dist/core/rename/reference-updater.d.ts.map +1 -1
  33. package/dist/core/rename/reference-updater.js +84 -79
  34. package/dist/core/rename/reference-updater.js.map +1 -1
  35. package/dist/core/rename/rename-engine.d.ts.map +1 -1
  36. package/dist/core/rename/rename-engine.js +68 -17
  37. package/dist/core/rename/rename-engine.js.map +1 -1
  38. package/dist/infrastructure/parser/base.d.ts +10 -0
  39. package/dist/infrastructure/parser/base.d.ts.map +1 -1
  40. package/dist/infrastructure/parser/base.js +39 -0
  41. package/dist/infrastructure/parser/base.js.map +1 -1
  42. package/dist/infrastructure/parser/interface.d.ts +12 -0
  43. package/dist/infrastructure/parser/interface.d.ts.map +1 -1
  44. package/dist/infrastructure/parser/interface.js +2 -0
  45. package/dist/infrastructure/parser/interface.js.map +1 -1
  46. package/dist/interfaces/cli/cli.d.ts +17 -1
  47. package/dist/interfaces/cli/cli.d.ts.map +1 -1
  48. package/dist/interfaces/cli/cli.js +220 -43
  49. package/dist/interfaces/cli/cli.js.map +1 -1
  50. package/dist/interfaces/cli/output-formatter.d.ts +55 -0
  51. package/dist/interfaces/cli/output-formatter.d.ts.map +1 -0
  52. package/dist/interfaces/cli/output-formatter.js +195 -0
  53. package/dist/interfaces/cli/output-formatter.js.map +1 -0
  54. package/dist/plugins/javascript/parser.d.ts +10 -0
  55. package/dist/plugins/javascript/parser.d.ts.map +1 -1
  56. package/dist/plugins/javascript/parser.js +62 -0
  57. package/dist/plugins/javascript/parser.js.map +1 -1
  58. package/dist/plugins/typescript/parser.d.ts +10 -0
  59. package/dist/plugins/typescript/parser.d.ts.map +1 -1
  60. package/dist/plugins/typescript/parser.js +59 -0
  61. package/dist/plugins/typescript/parser.js.map +1 -1
  62. package/package.json +8 -14
  63. package/dist/core/performance/analyzer.d.ts +0 -62
  64. package/dist/core/performance/analyzer.d.ts.map +0 -1
  65. package/dist/core/performance/analyzer.js +0 -378
  66. package/dist/core/performance/analyzer.js.map +0 -1
  67. package/dist/core/performance/cache-manager.d.ts +0 -161
  68. package/dist/core/performance/cache-manager.d.ts.map +0 -1
  69. package/dist/core/performance/cache-manager.js +0 -375
  70. package/dist/core/performance/cache-manager.js.map +0 -1
  71. package/dist/core/performance/index.d.ts +0 -14
  72. package/dist/core/performance/index.d.ts.map +0 -1
  73. package/dist/core/performance/index.js +0 -17
  74. package/dist/core/performance/index.js.map +0 -1
  75. package/dist/core/performance/interfaces.d.ts +0 -188
  76. package/dist/core/performance/interfaces.d.ts.map +0 -1
  77. package/dist/core/performance/interfaces.js +0 -17
  78. package/dist/core/performance/interfaces.js.map +0 -1
  79. package/dist/core/performance/memory-manager.d.ts +0 -176
  80. package/dist/core/performance/memory-manager.d.ts.map +0 -1
  81. package/dist/core/performance/memory-manager.js +0 -364
  82. package/dist/core/performance/memory-manager.js.map +0 -1
  83. package/dist/core/performance/monitor.d.ts +0 -92
  84. package/dist/core/performance/monitor.d.ts.map +0 -1
  85. package/dist/core/performance/monitor.js +0 -228
  86. package/dist/core/performance/monitor.js.map +0 -1
  87. package/dist/plugins/swift/index.d.ts +0 -11
  88. package/dist/plugins/swift/index.d.ts.map +0 -1
  89. package/dist/plugins/swift/index.js +0 -15
  90. package/dist/plugins/swift/index.js.map +0 -1
  91. package/dist/plugins/swift/parser.d.ts +0 -98
  92. package/dist/plugins/swift/parser.d.ts.map +0 -1
  93. package/dist/plugins/swift/parser.js +0 -612
  94. package/dist/plugins/swift/parser.js.map +0 -1
  95. package/dist/plugins/swift/types.d.ts +0 -196
  96. package/dist/plugins/swift/types.d.ts.map +0 -1
  97. package/dist/plugins/swift/types.js +0 -268
  98. package/dist/plugins/swift/types.js.map +0 -1
@@ -1,196 +0,0 @@
1
- /**
2
- * Swift Parser 型別定義
3
- * 定義 Swift Parser 專用的資料結構和工具函式
4
- */
5
- import type { AST, Symbol, ASTNode, Position, Range, Location } from '../../shared/types/index.js';
6
- import { SymbolType } from '../../shared/types/index.js';
7
- /**
8
- * Swift AST 節點型別
9
- */
10
- export interface SwiftASTNode extends ASTNode {
11
- /** 原始 tree-sitter 節點 */
12
- treeNode?: any;
13
- /** Swift 特定的節點型別 */
14
- swiftType: SwiftNodeType;
15
- /** 修飾符 (public, private, static, etc.) */
16
- modifiers: string[];
17
- /** 泛型參數 */
18
- generics: string[];
19
- /** 協議約束 */
20
- protocols: string[];
21
- }
22
- /**
23
- * Swift AST 結構
24
- */
25
- export interface SwiftAST extends AST {
26
- root: SwiftASTNode;
27
- /** tree-sitter 解析樹 */
28
- tree?: any;
29
- /** 解析錯誤列表 */
30
- errors: SwiftParseErrorInfo[];
31
- }
32
- /**
33
- * Swift 符號型別
34
- */
35
- export interface SwiftSymbol extends Symbol {
36
- /** Swift 特定的符號型別 */
37
- swiftType: SwiftSymbolType;
38
- /** 可見性修飾符 */
39
- visibility: SwiftVisibility;
40
- /** 是否為靜態 */
41
- isStatic: boolean;
42
- /** 泛型參數 */
43
- generics: string[];
44
- /** 協議約束 */
45
- protocols: string[];
46
- /** 屬性 (@objc, @available, etc.) */
47
- attributes: string[];
48
- /** 對應的 AST 節點 */
49
- astNode: SwiftASTNode;
50
- }
51
- /**
52
- * Swift 節點型別枚舉
53
- */
54
- export declare enum SwiftNodeType {
55
- ClassDeclaration = "class_declaration",
56
- StructDeclaration = "struct_declaration",
57
- EnumDeclaration = "enum_declaration",
58
- ProtocolDeclaration = "protocol_declaration",
59
- FunctionDeclaration = "function_declaration",
60
- InitDeclaration = "init_declaration",
61
- DeinitDeclaration = "deinit_declaration",
62
- VariableDeclaration = "variable_declaration",
63
- ConstantDeclaration = "constant_declaration",
64
- TypeAliasDeclaration = "typealias_declaration",
65
- ExtensionDeclaration = "extension_declaration",
66
- IfStatement = "if_statement",
67
- GuardStatement = "guard_statement",
68
- SwitchStatement = "switch_statement",
69
- ForStatement = "for_statement",
70
- WhileStatement = "while_statement",
71
- RepeatStatement = "repeat_statement",
72
- ReturnStatement = "return_statement",
73
- BreakStatement = "break_statement",
74
- ContinueStatement = "continue_statement",
75
- ThrowStatement = "throw_statement",
76
- CallExpression = "call_expression",
77
- PropertyAccess = "property_access",
78
- SubscriptExpression = "subscript_expression",
79
- ClosureExpression = "closure_expression",
80
- LiteralExpression = "literal_expression",
81
- Identifier = "identifier",
82
- Parameter = "parameter",
83
- GenericParameter = "generic_parameter",
84
- TypeAnnotation = "type_annotation",
85
- Comment = "comment",
86
- Import = "import",
87
- Unknown = "unknown"
88
- }
89
- /**
90
- * Swift 符號型別枚舉
91
- */
92
- export declare enum SwiftSymbolType {
93
- Class = "class",
94
- Struct = "struct",
95
- Enum = "enum",
96
- Protocol = "protocol",
97
- Function = "function",
98
- Method = "method",
99
- Initializer = "initializer",
100
- Deinitializer = "deinitializer",
101
- Property = "property",
102
- Variable = "variable",
103
- Constant = "constant",
104
- TypeAlias = "typealias",
105
- Extension = "extension",
106
- EnumCase = "enum_case",
107
- Parameter = "parameter",
108
- Generic = "generic"
109
- }
110
- /**
111
- * Swift 可見性修飾符
112
- */
113
- export declare enum SwiftVisibility {
114
- Private = "private",
115
- FilePrivate = "fileprivate",
116
- Internal = "internal",
117
- Public = "public",
118
- Open = "open"
119
- }
120
- /**
121
- * Swift 解析錯誤介面
122
- */
123
- export interface SwiftParseErrorInfo {
124
- message: string;
125
- location: Location;
126
- severity: 'error' | 'warning';
127
- code?: string;
128
- }
129
- /**
130
- * Swift 編譯器選項
131
- */
132
- export interface SwiftCompilerOptions {
133
- /** Swift 版本 */
134
- swiftVersion: string;
135
- /** 目標平台 */
136
- target?: string;
137
- /** 模組名稱 */
138
- moduleName?: string;
139
- /** 是否啟用嚴格模式 */
140
- strict?: boolean;
141
- /** 警告等級 */
142
- warningLevel?: 'none' | 'minimal' | 'all';
143
- }
144
- /**
145
- * 預設編譯器選項
146
- */
147
- export declare const DEFAULT_SWIFT_COMPILER_OPTIONS: SwiftCompilerOptions;
148
- /**
149
- * Swift 解析錯誤類別
150
- */
151
- export declare class SwiftParseError extends Error {
152
- readonly location?: Location | undefined;
153
- readonly code?: string | undefined;
154
- constructor(message: string, location?: Location | undefined, code?: string | undefined);
155
- }
156
- /**
157
- * 建立 Swift AST 節點
158
- */
159
- export declare function createSwiftASTNode(type: SwiftNodeType, range: Range, children?: SwiftASTNode[], treeNode?: any): SwiftASTNode;
160
- /**
161
- * 建立 Swift 符號
162
- */
163
- export declare function createSwiftSymbol(name: string, type: SwiftSymbolType, location: Location, astNode: SwiftASTNode, visibility?: SwiftVisibility): SwiftSymbol;
164
- /**
165
- * 建立 Swift 解析錯誤
166
- */
167
- export declare function createSwiftParseError(message: string, location?: Location, code?: string): SwiftParseError;
168
- /**
169
- * 映射 Swift 符號型別到通用符號型別
170
- */
171
- export declare function mapSwiftSymbolTypeToSymbolType(swiftType: SwiftSymbolType): SymbolType;
172
- /**
173
- * 檢查節點是否為宣告
174
- */
175
- export declare function isDeclarationNode(node: SwiftASTNode): boolean;
176
- /**
177
- * 檢查節點是否為型別宣告
178
- */
179
- export declare function isTypeDeclarationNode(node: SwiftASTNode): boolean;
180
- /**
181
- * 檢查是否為有效的 Swift 識別符
182
- */
183
- export declare function isValidSwiftIdentifier(name: string): boolean;
184
- /**
185
- * 檢查是否為 Swift 關鍵字
186
- */
187
- export declare function isSwiftKeyword(name: string): boolean;
188
- /**
189
- * 從位置資訊轉換為 Range
190
- */
191
- export declare function positionToRange(start: Position, end?: Position): Range;
192
- /**
193
- * 建立基本範圍(Swift 專用的便利函式)
194
- */
195
- export declare function createSwiftRange(startLine: number, startColumn: number, endLine: number, endColumn: number): Range;
196
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/plugins/swift/types.ts"],"names":[],"mappings":"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"}
@@ -1,268 +0,0 @@
1
- /**
2
- * Swift Parser 型別定義
3
- * 定義 Swift Parser 專用的資料結構和工具函式
4
- */
5
- import { SymbolType, createScope, createPosition, createRange as createCoreRange } from '../../shared/types/index.js';
6
- /**
7
- * Swift 節點型別枚舉
8
- */
9
- export var SwiftNodeType;
10
- (function (SwiftNodeType) {
11
- // 宣告
12
- SwiftNodeType["ClassDeclaration"] = "class_declaration";
13
- SwiftNodeType["StructDeclaration"] = "struct_declaration";
14
- SwiftNodeType["EnumDeclaration"] = "enum_declaration";
15
- SwiftNodeType["ProtocolDeclaration"] = "protocol_declaration";
16
- SwiftNodeType["FunctionDeclaration"] = "function_declaration";
17
- SwiftNodeType["InitDeclaration"] = "init_declaration";
18
- SwiftNodeType["DeinitDeclaration"] = "deinit_declaration";
19
- SwiftNodeType["VariableDeclaration"] = "variable_declaration";
20
- SwiftNodeType["ConstantDeclaration"] = "constant_declaration";
21
- SwiftNodeType["TypeAliasDeclaration"] = "typealias_declaration";
22
- SwiftNodeType["ExtensionDeclaration"] = "extension_declaration";
23
- // 語句
24
- SwiftNodeType["IfStatement"] = "if_statement";
25
- SwiftNodeType["GuardStatement"] = "guard_statement";
26
- SwiftNodeType["SwitchStatement"] = "switch_statement";
27
- SwiftNodeType["ForStatement"] = "for_statement";
28
- SwiftNodeType["WhileStatement"] = "while_statement";
29
- SwiftNodeType["RepeatStatement"] = "repeat_statement";
30
- SwiftNodeType["ReturnStatement"] = "return_statement";
31
- SwiftNodeType["BreakStatement"] = "break_statement";
32
- SwiftNodeType["ContinueStatement"] = "continue_statement";
33
- SwiftNodeType["ThrowStatement"] = "throw_statement";
34
- // 表達式
35
- SwiftNodeType["CallExpression"] = "call_expression";
36
- SwiftNodeType["PropertyAccess"] = "property_access";
37
- SwiftNodeType["SubscriptExpression"] = "subscript_expression";
38
- SwiftNodeType["ClosureExpression"] = "closure_expression";
39
- SwiftNodeType["LiteralExpression"] = "literal_expression";
40
- SwiftNodeType["Identifier"] = "identifier";
41
- // 其他
42
- SwiftNodeType["Parameter"] = "parameter";
43
- SwiftNodeType["GenericParameter"] = "generic_parameter";
44
- SwiftNodeType["TypeAnnotation"] = "type_annotation";
45
- SwiftNodeType["Comment"] = "comment";
46
- SwiftNodeType["Import"] = "import";
47
- SwiftNodeType["Unknown"] = "unknown";
48
- })(SwiftNodeType || (SwiftNodeType = {}));
49
- /**
50
- * Swift 符號型別枚舉
51
- */
52
- export var SwiftSymbolType;
53
- (function (SwiftSymbolType) {
54
- SwiftSymbolType["Class"] = "class";
55
- SwiftSymbolType["Struct"] = "struct";
56
- SwiftSymbolType["Enum"] = "enum";
57
- SwiftSymbolType["Protocol"] = "protocol";
58
- SwiftSymbolType["Function"] = "function";
59
- SwiftSymbolType["Method"] = "method";
60
- SwiftSymbolType["Initializer"] = "initializer";
61
- SwiftSymbolType["Deinitializer"] = "deinitializer";
62
- SwiftSymbolType["Property"] = "property";
63
- SwiftSymbolType["Variable"] = "variable";
64
- SwiftSymbolType["Constant"] = "constant";
65
- SwiftSymbolType["TypeAlias"] = "typealias";
66
- SwiftSymbolType["Extension"] = "extension";
67
- SwiftSymbolType["EnumCase"] = "enum_case";
68
- SwiftSymbolType["Parameter"] = "parameter";
69
- SwiftSymbolType["Generic"] = "generic";
70
- })(SwiftSymbolType || (SwiftSymbolType = {}));
71
- /**
72
- * Swift 可見性修飾符
73
- */
74
- export var SwiftVisibility;
75
- (function (SwiftVisibility) {
76
- SwiftVisibility["Private"] = "private";
77
- SwiftVisibility["FilePrivate"] = "fileprivate";
78
- SwiftVisibility["Internal"] = "internal";
79
- SwiftVisibility["Public"] = "public";
80
- SwiftVisibility["Open"] = "open";
81
- })(SwiftVisibility || (SwiftVisibility = {}));
82
- /**
83
- * 預設編譯器選項
84
- */
85
- export const DEFAULT_SWIFT_COMPILER_OPTIONS = {
86
- swiftVersion: '5.0',
87
- target: 'x86_64-apple-macosx10.15',
88
- strict: true,
89
- warningLevel: 'all'
90
- };
91
- /**
92
- * Swift 解析錯誤類別
93
- */
94
- export class SwiftParseError extends Error {
95
- location;
96
- code;
97
- constructor(message, location, code) {
98
- super(message);
99
- this.location = location;
100
- this.code = code;
101
- this.name = 'SwiftParseError';
102
- }
103
- }
104
- // 工具函式
105
- /**
106
- * 建立 Swift AST 節點
107
- */
108
- export function createSwiftASTNode(type, range, children = [], treeNode) {
109
- return {
110
- type: type,
111
- range,
112
- properties: {},
113
- children,
114
- parent: undefined,
115
- treeNode,
116
- swiftType: type,
117
- modifiers: [],
118
- generics: [],
119
- protocols: []
120
- };
121
- }
122
- /**
123
- * 建立 Swift 符號
124
- */
125
- export function createSwiftSymbol(name, type, location, astNode, visibility = SwiftVisibility.Internal) {
126
- const scope = createScope('global'); // 預設 global scope
127
- const modifiers = [visibility];
128
- return {
129
- name,
130
- type: mapSwiftSymbolTypeToSymbolType(type),
131
- location,
132
- scope,
133
- modifiers,
134
- swiftType: type,
135
- visibility,
136
- isStatic: false,
137
- generics: [],
138
- protocols: [],
139
- attributes: [],
140
- astNode
141
- };
142
- }
143
- /**
144
- * 建立 Swift 解析錯誤
145
- */
146
- export function createSwiftParseError(message, location, code) {
147
- return new SwiftParseError(message, location, code);
148
- }
149
- /**
150
- * 映射 Swift 符號型別到通用符號型別
151
- */
152
- export function mapSwiftSymbolTypeToSymbolType(swiftType) {
153
- switch (swiftType) {
154
- case SwiftSymbolType.Class:
155
- return SymbolType.Class;
156
- case SwiftSymbolType.Struct:
157
- return SymbolType.Class; // Swift struct 對應到 Class
158
- case SwiftSymbolType.Enum:
159
- return SymbolType.Enum;
160
- case SwiftSymbolType.Protocol:
161
- return SymbolType.Interface;
162
- case SwiftSymbolType.Function:
163
- case SwiftSymbolType.Method:
164
- case SwiftSymbolType.Initializer:
165
- case SwiftSymbolType.Deinitializer:
166
- return SymbolType.Function;
167
- case SwiftSymbolType.Property:
168
- case SwiftSymbolType.Variable:
169
- return SymbolType.Variable;
170
- case SwiftSymbolType.Constant:
171
- return SymbolType.Constant;
172
- case SwiftSymbolType.TypeAlias:
173
- return SymbolType.Type;
174
- case SwiftSymbolType.Extension:
175
- return SymbolType.Class;
176
- case SwiftSymbolType.EnumCase:
177
- return SymbolType.Constant;
178
- case SwiftSymbolType.Parameter:
179
- return SymbolType.Variable;
180
- case SwiftSymbolType.Generic:
181
- return SymbolType.Type;
182
- default:
183
- return SymbolType.Variable;
184
- }
185
- }
186
- /**
187
- * 檢查節點是否為宣告
188
- */
189
- export function isDeclarationNode(node) {
190
- return [
191
- SwiftNodeType.ClassDeclaration,
192
- SwiftNodeType.StructDeclaration,
193
- SwiftNodeType.EnumDeclaration,
194
- SwiftNodeType.ProtocolDeclaration,
195
- SwiftNodeType.FunctionDeclaration,
196
- SwiftNodeType.InitDeclaration,
197
- SwiftNodeType.DeinitDeclaration,
198
- SwiftNodeType.VariableDeclaration,
199
- SwiftNodeType.ConstantDeclaration,
200
- SwiftNodeType.TypeAliasDeclaration,
201
- SwiftNodeType.ExtensionDeclaration
202
- ].includes(node.swiftType);
203
- }
204
- /**
205
- * 檢查節點是否為型別宣告
206
- */
207
- export function isTypeDeclarationNode(node) {
208
- return [
209
- SwiftNodeType.ClassDeclaration,
210
- SwiftNodeType.StructDeclaration,
211
- SwiftNodeType.EnumDeclaration,
212
- SwiftNodeType.ProtocolDeclaration,
213
- SwiftNodeType.TypeAliasDeclaration
214
- ].includes(node.swiftType);
215
- }
216
- /**
217
- * 檢查是否為有效的 Swift 識別符
218
- */
219
- export function isValidSwiftIdentifier(name) {
220
- // Swift 識別符規則:
221
- // - 以字母或底線開頭
222
- // - 後續可包含字母、數字、底線
223
- // - 支援 Unicode 字符
224
- const identifierRegex = /^[a-zA-Z_\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF\u1E00-\u1FFF\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793\u2C00-\u2DFF\u2E80-\u2FFF\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44\uFE47-\uFFFD][a-zA-Z0-9_\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF\u1E00-\u1FFF\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793\u2C00-\u2DFF\u2E80-\u2FFF\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44\uFE47-\uFFFD]*$/;
225
- return identifierRegex.test(name) && !isSwiftKeyword(name);
226
- }
227
- /**
228
- * 檢查是否為 Swift 關鍵字
229
- */
230
- export function isSwiftKeyword(name) {
231
- const keywords = new Set([
232
- // 宣告關鍵字
233
- 'class', 'struct', 'enum', 'protocol', 'func', 'var', 'let', 'init', 'deinit',
234
- 'extension', 'typealias', 'import', 'subscript', 'operator',
235
- // 語句關鍵字
236
- 'if', 'else', 'switch', 'case', 'default', 'for', 'in', 'while', 'repeat',
237
- 'break', 'continue', 'return', 'throw', 'throws', 'rethrows', 'try',
238
- 'catch', 'finally', 'defer', 'guard', 'where',
239
- // 表達式關鍵字
240
- 'as', 'is', 'super', 'self', 'Self', 'new', 'nil', 'true', 'false',
241
- // 型別關鍵字
242
- 'Any', 'AnyObject', 'Type', 'Protocol',
243
- // 修飾符
244
- 'public', 'private', 'fileprivate', 'internal', 'open',
245
- 'static', 'class', 'final', 'lazy', 'weak', 'unowned',
246
- 'optional', 'required', 'override', 'mutating', 'nonmutating',
247
- 'dynamic', '@objc', '@nonobjc', '@available', '@discardableResult',
248
- // 其他
249
- 'associatedtype', 'precedencegroup', 'infix', 'prefix', 'postfix',
250
- 'left', 'right', 'none', 'assignment', 'higherThan', 'lowerThan'
251
- ]);
252
- return keywords.has(name);
253
- }
254
- /**
255
- * 從位置資訊轉換為 Range
256
- */
257
- export function positionToRange(start, end) {
258
- return createCoreRange(start, end || start);
259
- }
260
- /**
261
- * 建立基本範圍(Swift 專用的便利函式)
262
- */
263
- export function createSwiftRange(startLine, startColumn, endLine, endColumn) {
264
- const start = createPosition(startLine, startColumn);
265
- const end = createPosition(endLine, endColumn);
266
- return createCoreRange(start, end);
267
- }
268
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/plugins/swift/types.ts"],"names":[],"mappings":"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"}