@aws/lsp-codewhisperer 0.0.35 → 0.0.36
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/CHANGELOG.md +44 -0
- package/out/client/token/bearer-token-service.json +91 -225
- package/out/language-server/agenticChat/agenticChatController.js +7 -0
- package/out/language-server/agenticChat/agenticChatController.js.map +1 -1
- package/out/language-server/agenticChat/context/agenticChatTriggerContext.js +1 -1
- package/out/language-server/agenticChat/context/agenticChatTriggerContext.js.map +1 -1
- package/out/language-server/agenticChat/tools/listDirectory.js +5 -5
- package/out/language-server/agenticChat/tools/listDirectory.js.map +1 -1
- package/out/language-server/chat/chatController.js +1 -1
- package/out/language-server/chat/chatController.js.map +1 -1
- package/out/language-server/chat/chatSessionService.d.ts +5 -0
- package/out/language-server/chat/chatSessionService.js +4 -1
- package/out/language-server/chat/chatSessionService.js.map +1 -1
- package/out/language-server/chat/constants.d.ts +2 -0
- package/out/language-server/chat/constants.js +14 -1
- package/out/language-server/chat/constants.js.map +1 -1
- package/out/language-server/chat/contexts/triggerContext.d.ts +3 -1
- package/out/language-server/chat/contexts/triggerContext.js +14 -1
- package/out/language-server/chat/contexts/triggerContext.js.map +1 -1
- package/out/language-server/configuration/qConfigurationServer.d.ts +8 -1
- package/out/language-server/configuration/qConfigurationServer.js +107 -8
- package/out/language-server/configuration/qConfigurationServer.js.map +1 -1
- package/out/language-server/inline-completion/codeWhispererServer.js +15 -2
- package/out/language-server/inline-completion/codeWhispererServer.js.map +1 -1
- package/out/language-server/netTransform/resources/SupportedProjects.js +1 -7
- package/out/language-server/netTransform/resources/SupportedProjects.js.map +1 -1
- package/out/language-server/workspaceContext/artifactManager.d.ts +44 -0
- package/out/language-server/workspaceContext/artifactManager.js +496 -0
- package/out/language-server/workspaceContext/artifactManager.js.map +1 -0
- package/out/language-server/workspaceContext/client.d.ts +23 -0
- package/out/language-server/workspaceContext/client.js +172 -0
- package/out/language-server/workspaceContext/client.js.map +1 -0
- package/out/language-server/workspaceContext/dependency/dependencyDiscoverer.d.ts +15 -0
- package/out/language-server/workspaceContext/dependency/dependencyDiscoverer.js +129 -0
- package/out/language-server/workspaceContext/dependency/dependencyDiscoverer.js.map +1 -0
- package/out/language-server/workspaceContext/dependency/dependencyHandler/JSTSDependencyHandler.d.ts +18 -0
- package/out/language-server/workspaceContext/dependency/dependencyHandler/JSTSDependencyHandler.js +204 -0
- package/out/language-server/workspaceContext/dependency/dependencyHandler/JSTSDependencyHandler.js.map +1 -0
- package/out/language-server/workspaceContext/dependency/dependencyHandler/JavaDependencyHandler.d.ts +16 -0
- package/out/language-server/workspaceContext/dependency/dependencyHandler/JavaDependencyHandler.js +160 -0
- package/out/language-server/workspaceContext/dependency/dependencyHandler/JavaDependencyHandler.js.map +1 -0
- package/out/language-server/workspaceContext/dependency/dependencyHandler/LanguageDependencyHandler.d.ts +78 -0
- package/out/language-server/workspaceContext/dependency/dependencyHandler/LanguageDependencyHandler.js +255 -0
- package/out/language-server/workspaceContext/dependency/dependencyHandler/LanguageDependencyHandler.js.map +1 -0
- package/out/language-server/workspaceContext/dependency/dependencyHandler/LanguageDependencyHandlerFactory.d.ts +7 -0
- package/out/language-server/workspaceContext/dependency/dependencyHandler/LanguageDependencyHandlerFactory.js +23 -0
- package/out/language-server/workspaceContext/dependency/dependencyHandler/LanguageDependencyHandlerFactory.js.map +1 -0
- package/out/language-server/workspaceContext/dependency/dependencyHandler/PythonDependencyHandler.d.ts +46 -0
- package/out/language-server/workspaceContext/dependency/dependencyHandler/PythonDependencyHandler.js +233 -0
- package/out/language-server/workspaceContext/dependency/dependencyHandler/PythonDependencyHandler.js.map +1 -0
- package/out/language-server/workspaceContext/javaManager.d.ts +92 -0
- package/out/language-server/workspaceContext/javaManager.js +710 -0
- package/out/language-server/workspaceContext/javaManager.js.map +1 -0
- package/out/language-server/workspaceContext/util.d.ts +10 -0
- package/out/language-server/workspaceContext/util.js +72 -0
- package/out/language-server/workspaceContext/util.js.map +1 -0
- package/out/language-server/workspaceContext/workspaceContextServer.d.ts +2 -0
- package/out/language-server/workspaceContext/workspaceContextServer.js +414 -0
- package/out/language-server/workspaceContext/workspaceContextServer.js.map +1 -0
- package/out/language-server/workspaceContext/workspaceFolderManager.d.ts +113 -0
- package/out/language-server/workspaceContext/workspaceFolderManager.js +827 -0
- package/out/language-server/workspaceContext/workspaceFolderManager.js.map +1 -0
- package/out/shared/amazonQServiceManager/qDeveloperProfiles.js.map +1 -1
- package/out/shared/codeWhispererService.d.ts +13 -0
- package/out/shared/codeWhispererService.js +24 -0
- package/out/shared/codeWhispererService.js.map +1 -1
- package/out/shared/languageDetection.d.ts +27 -0
- package/out/shared/languageDetection.js +44 -1
- package/out/shared/languageDetection.js.map +1 -1
- package/out/shared/localProjectContextController.d.ts +1 -0
- package/out/shared/localProjectContextController.js +6 -8
- package/out/shared/localProjectContextController.js.map +1 -1
- package/out/shared/proxy-server.d.ts +1 -0
- package/out/shared/proxy-server.js +3 -1
- package/out/shared/proxy-server.js.map +1 -1
- package/out/shared/supplementalContextUtil/crossFileContextUtil.d.ts +4 -3
- package/out/shared/supplementalContextUtil/crossFileContextUtil.js +16 -5
- package/out/shared/supplementalContextUtil/crossFileContextUtil.js.map +1 -1
- package/out/shared/supplementalContextUtil/supplementalContextUtil.d.ts +2 -1
- package/out/shared/supplementalContextUtil/supplementalContextUtil.js +2 -2
- package/out/shared/supplementalContextUtil/supplementalContextUtil.js.map +1 -1
- package/package.json +9 -3
package/out/language-server/workspaceContext/dependency/dependencyHandler/PythonDependencyHandler.js
ADDED
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PythonDependencyHandler = void 0;
|
|
4
|
+
const LanguageDependencyHandler_1 = require("./LanguageDependencyHandler");
|
|
5
|
+
const path = require("path");
|
|
6
|
+
const fs = require("fs");
|
|
7
|
+
const util_1 = require("../../util");
|
|
8
|
+
/*
|
|
9
|
+
* Python Dependency Handler
|
|
10
|
+
*
|
|
11
|
+
* This handler depends on .vscode/settings.json to discover dependency locations
|
|
12
|
+
*/
|
|
13
|
+
class PythonDependencyHandler extends LanguageDependencyHandler_1.LanguageDependencyHandler {
|
|
14
|
+
pythonDependencyInfos = [];
|
|
15
|
+
/**
|
|
16
|
+
* It will return a boolean indicating whether it finds any dependency info.
|
|
17
|
+
* The PythonDependencyInfo object contains the following properties:
|
|
18
|
+
* - pkgDir: the package directory
|
|
19
|
+
* - vscCodeSettingsJsonPath: the path to the .vscode/settings.json file
|
|
20
|
+
* - sitePackagesPaths: the path to site-packages directory
|
|
21
|
+
*/
|
|
22
|
+
discover(currentDir, workspaceFolder) {
|
|
23
|
+
let result = null;
|
|
24
|
+
const vscCodeSettingsJsonPath = path.join(currentDir, '.vscode', 'settings.json');
|
|
25
|
+
if (fs.existsSync(vscCodeSettingsJsonPath) && fs.statSync(vscCodeSettingsJsonPath).isFile()) {
|
|
26
|
+
this.logging.log(`Found .vscode/settings.json in ${currentDir}`);
|
|
27
|
+
let settingsContent;
|
|
28
|
+
try {
|
|
29
|
+
settingsContent = JSON.parse(fs.readFileSync(vscCodeSettingsJsonPath, 'utf-8'));
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
this.logging.warn(`Can't parse settings.json, skipping`);
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
// Get and resolve paths from both settings
|
|
36
|
+
const analysisPaths = (settingsContent['python.analysis.extraPaths'] || []).map((rawPath) => this.resolvePath(rawPath, currentDir));
|
|
37
|
+
const autoCompletePaths = (settingsContent['python.autoComplete.extraPaths'] || []).map((rawPath) => this.resolvePath(rawPath, currentDir));
|
|
38
|
+
// Find all unique site-packages directories
|
|
39
|
+
const sitePackagesPaths = this.findSitePackagesPaths([...analysisPaths, ...autoCompletePaths]);
|
|
40
|
+
if (sitePackagesPaths.length === 0) {
|
|
41
|
+
this.logging.log('No site-packages directories found in Python paths');
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
result = {
|
|
45
|
+
pkgDir: currentDir,
|
|
46
|
+
vscCodeSettingsJsonPath: vscCodeSettingsJsonPath,
|
|
47
|
+
sitePackagesPaths: sitePackagesPaths,
|
|
48
|
+
workspaceFolder: workspaceFolder,
|
|
49
|
+
};
|
|
50
|
+
this.pythonDependencyInfos.push(result);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return result !== null;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* It will create a dependency map from the site-packages
|
|
57
|
+
* The dependency map will contain the following properties:
|
|
58
|
+
* - name: the name of the dependency
|
|
59
|
+
* - version: the version of the dependency
|
|
60
|
+
* - path: the path to the dependency
|
|
61
|
+
*/
|
|
62
|
+
initiateDependencyMap(folders) {
|
|
63
|
+
// Filter out the javaDependencyInfos that are in the folders
|
|
64
|
+
const pythonDependencyInfoToBeInitiated = this.pythonDependencyInfos.filter(pythonDependencyInfo => {
|
|
65
|
+
return folders.includes(pythonDependencyInfo.workspaceFolder);
|
|
66
|
+
});
|
|
67
|
+
pythonDependencyInfoToBeInitiated.forEach(pythonDependencyInfo => {
|
|
68
|
+
// TODO, check if the try catch is necessary here
|
|
69
|
+
try {
|
|
70
|
+
let generatedDependencyMap = this.generateDependencyMap(pythonDependencyInfo);
|
|
71
|
+
this.compareAndUpdateDependencyMap(pythonDependencyInfo.workspaceFolder, generatedDependencyMap).catch(error => {
|
|
72
|
+
this.logging.warn(`Error processing Python dependencies: ${error}`);
|
|
73
|
+
});
|
|
74
|
+
// Log found dependencies
|
|
75
|
+
this.logging.log(`Total Python dependencies found: ${generatedDependencyMap.size} under ${pythonDependencyInfo.pkgDir}`);
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
this.logging.warn(`Error processing Python dependencies: ${error}`);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* It will setup watchers for the .classpath files.
|
|
85
|
+
* When a change is detected, it will update the dependency map.
|
|
86
|
+
*/
|
|
87
|
+
setupWatchers(folders) {
|
|
88
|
+
// Filter out the javaDependencyInfos that are in the folders
|
|
89
|
+
const pythonDependencyInfoToBeWatched = this.pythonDependencyInfos.filter(pythonDependencyInfo => {
|
|
90
|
+
return folders.includes(pythonDependencyInfo.workspaceFolder);
|
|
91
|
+
});
|
|
92
|
+
pythonDependencyInfoToBeWatched.forEach(pythonDependencyInfo => {
|
|
93
|
+
pythonDependencyInfo.sitePackagesPaths.forEach(sitePackagesPath => {
|
|
94
|
+
if (this.dependencyWatchers.has(sitePackagesPath)) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
this.logging.log(`Setting up Python dependency watcher for ${sitePackagesPath}`);
|
|
98
|
+
try {
|
|
99
|
+
const watcher = fs.watch(sitePackagesPath, { recursive: false }, async (eventType, fileName) => {
|
|
100
|
+
if (!fileName)
|
|
101
|
+
return;
|
|
102
|
+
// Handle event types
|
|
103
|
+
if (eventType === 'rename') {
|
|
104
|
+
const updatedDependencyMap = new Map();
|
|
105
|
+
if (this.isMetadataDirectory(fileName)) {
|
|
106
|
+
this.handleMetadataChange(sitePackagesPath, fileName, updatedDependencyMap);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
this.handlePackageChange(sitePackagesPath, fileName, updatedDependencyMap);
|
|
110
|
+
}
|
|
111
|
+
let zips = await this.compareAndUpdateDependencyMap(pythonDependencyInfo.workspaceFolder, updatedDependencyMap, true);
|
|
112
|
+
this.emitDependencyChange(pythonDependencyInfo.workspaceFolder, zips);
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
this.dependencyWatchers.set(sitePackagesPath, watcher);
|
|
116
|
+
this.logging.log(`Started watching Python site-packages: ${sitePackagesPath}`);
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
this.logging.warn(`Error setting up watcher for ${sitePackagesPath}: ${error}`);
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* It will generate a dependency map from the site-packages
|
|
126
|
+
* The dependency map will contain the following properties:
|
|
127
|
+
*
|
|
128
|
+
* @param pythonDependencyInfo
|
|
129
|
+
* @param dependencyMap
|
|
130
|
+
*/
|
|
131
|
+
generateDependencyMap(pythonDependencyInfo) {
|
|
132
|
+
const dependencyMap = new Map();
|
|
133
|
+
// Process each site-packages directory
|
|
134
|
+
for (const sitePackagesPath of pythonDependencyInfo.sitePackagesPaths) {
|
|
135
|
+
const sitePackagesContent = fs.readdirSync(sitePackagesPath);
|
|
136
|
+
for (const item of sitePackagesContent) {
|
|
137
|
+
const itemPath = path.join(sitePackagesPath, item);
|
|
138
|
+
this.transformPathToDependency(item, itemPath, dependencyMap);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return dependencyMap;
|
|
142
|
+
}
|
|
143
|
+
transformPathToDependency(dependencyName, dependencyPath, dependencyMap) {
|
|
144
|
+
// Skip if it's a metadata directory
|
|
145
|
+
if (this.isMetadataDirectory(dependencyPath)) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
// Add to dependency map if not already present
|
|
149
|
+
if (!dependencyMap.has(dependencyName)) {
|
|
150
|
+
let dependencySize = 0;
|
|
151
|
+
if ((0, util_1.isDirectory)(dependencyPath)) {
|
|
152
|
+
dependencySize = this.getDirectorySize(dependencyPath);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
dependencySize = fs.statSync(dependencyPath).size;
|
|
156
|
+
}
|
|
157
|
+
dependencyMap.set(dependencyName, {
|
|
158
|
+
name: dependencyName,
|
|
159
|
+
version: 'unknown',
|
|
160
|
+
path: dependencyPath,
|
|
161
|
+
size: dependencySize,
|
|
162
|
+
zipped: false,
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
isMetadataDirectory(filename) {
|
|
167
|
+
return filename.endsWith('.egg-info') || filename.endsWith('.dist-info') || filename.endsWith('-info');
|
|
168
|
+
}
|
|
169
|
+
handleMetadataChange(sitePackagesPath, metadataDir, updatedDependencyMap) {
|
|
170
|
+
// Extract package name from metadata directory name
|
|
171
|
+
// Example: 'requests-2.28.1.dist-info' -> 'requests'
|
|
172
|
+
const dependencyName = metadataDir.split('-')[0];
|
|
173
|
+
// Check if we have this package in our dependency map
|
|
174
|
+
const dependencyPath = path.join(sitePackagesPath, dependencyName);
|
|
175
|
+
if (fs.existsSync(dependencyPath)) {
|
|
176
|
+
// Mark the package as updated
|
|
177
|
+
const updatedDependency = {
|
|
178
|
+
name: dependencyName,
|
|
179
|
+
version: 'unknown',
|
|
180
|
+
path: dependencyPath,
|
|
181
|
+
size: this.getDirectorySize(dependencyPath),
|
|
182
|
+
zipped: false,
|
|
183
|
+
};
|
|
184
|
+
updatedDependencyMap.set(dependencyName, updatedDependency);
|
|
185
|
+
this.logging.log(`Python package updated (metadata change): ${dependencyPath}`);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
handlePackageChange(sitePackagesPath, fileName, updatedDependencyMap) {
|
|
189
|
+
const dependencyPath = path.join(sitePackagesPath, fileName);
|
|
190
|
+
if (fs.existsSync(dependencyPath)) {
|
|
191
|
+
const updatedDependency = {
|
|
192
|
+
name: fileName,
|
|
193
|
+
version: 'unknown',
|
|
194
|
+
path: dependencyPath,
|
|
195
|
+
size: this.getDirectorySize(dependencyPath),
|
|
196
|
+
zipped: false,
|
|
197
|
+
};
|
|
198
|
+
updatedDependencyMap.set(fileName, updatedDependency);
|
|
199
|
+
this.logging.log(`Python package updated: ${fileName}`);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
resolvePath(rawPath, workspaceFolder) {
|
|
203
|
+
// resolve the path which may contain variables
|
|
204
|
+
return rawPath
|
|
205
|
+
.replace(/\${workspaceFolder}/g, workspaceFolder)
|
|
206
|
+
.replace(/\${env:([^}]+)}/g, (_, envVar) => process.env[envVar] || '')
|
|
207
|
+
.replace(/\${userHome}/g, process.env.HOME || process.env.USERPROFILE || '');
|
|
208
|
+
}
|
|
209
|
+
findSitePackagesPaths(pythonPaths) {
|
|
210
|
+
// Normalize paths and remove duplicates
|
|
211
|
+
const normalizedPaths = new Set(pythonPaths.map(p => path.normalize(p)).filter(p => p.includes('site-packages') && fs.existsSync(p)));
|
|
212
|
+
return Array.from(normalizedPaths);
|
|
213
|
+
}
|
|
214
|
+
disposeWatchers(workspaceFolder) {
|
|
215
|
+
this.pythonDependencyInfos.forEach((pythonDependencyInfo) => {
|
|
216
|
+
if (workspaceFolder.uri === pythonDependencyInfo.workspaceFolder.uri) {
|
|
217
|
+
pythonDependencyInfo.sitePackagesPaths.forEach((sitePackagesPath) => {
|
|
218
|
+
if (this.dependencyWatchers.has(sitePackagesPath)) {
|
|
219
|
+
this.logging.log(`Disposing dependency watcher for ${sitePackagesPath}`);
|
|
220
|
+
this.dependencyWatchers.get(sitePackagesPath)?.close();
|
|
221
|
+
this.dependencyWatchers.delete(sitePackagesPath);
|
|
222
|
+
}
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
disposeDependencyInfo(workspaceFolder) {
|
|
228
|
+
// Remove the dependency info for the workspace folder
|
|
229
|
+
this.pythonDependencyInfos = this.pythonDependencyInfos.filter((pythonDependencyInfo) => pythonDependencyInfo.workspaceFolder.uri !== workspaceFolder.uri);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
exports.PythonDependencyHandler = PythonDependencyHandler;
|
|
233
|
+
//# sourceMappingURL=PythonDependencyHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PythonDependencyHandler.js","sourceRoot":"","sources":["../../../../../src/language-server/workspaceContext/dependency/dependencyHandler/PythonDependencyHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { FileMetadata } from './artifactManager';
|
|
2
|
+
import { WorkspaceFolder } from '@aws/language-server-runtimes/protocol';
|
|
3
|
+
import { Logging } from '@aws/language-server-runtimes/server-interface';
|
|
4
|
+
interface SourcePath {
|
|
5
|
+
path: string;
|
|
6
|
+
isOptional: boolean;
|
|
7
|
+
isGenerated?: boolean;
|
|
8
|
+
}
|
|
9
|
+
interface LibraryArtifact {
|
|
10
|
+
libraryPath: string;
|
|
11
|
+
sourcesPath?: string;
|
|
12
|
+
documentationPath?: string;
|
|
13
|
+
}
|
|
14
|
+
interface JavaProjectStructure {
|
|
15
|
+
sourceDirectories: SourcePath[];
|
|
16
|
+
testDirectories: SourcePath[];
|
|
17
|
+
resourceDirectories: SourcePath[];
|
|
18
|
+
testResourceDirectories: SourcePath[];
|
|
19
|
+
outputDirectory: string;
|
|
20
|
+
testOutputDirectory: string;
|
|
21
|
+
javaVersion: string;
|
|
22
|
+
dependencies: LibraryArtifact[];
|
|
23
|
+
annotationProcessors?: {
|
|
24
|
+
processors: string[];
|
|
25
|
+
options: Record<string, string>;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
interface SourcePath {
|
|
29
|
+
path: string;
|
|
30
|
+
isOptional: boolean;
|
|
31
|
+
isGenerated?: boolean;
|
|
32
|
+
}
|
|
33
|
+
interface LibraryArtifact {
|
|
34
|
+
libraryPath: string;
|
|
35
|
+
sourcesPath?: string;
|
|
36
|
+
documentationPath?: string;
|
|
37
|
+
}
|
|
38
|
+
interface JavaProjectStructure {
|
|
39
|
+
sourceDirectories: SourcePath[];
|
|
40
|
+
testDirectories: SourcePath[];
|
|
41
|
+
resourceDirectories: SourcePath[];
|
|
42
|
+
testResourceDirectories: SourcePath[];
|
|
43
|
+
outputDirectory: string;
|
|
44
|
+
testOutputDirectory: string;
|
|
45
|
+
javaVersion: string;
|
|
46
|
+
dependencies: LibraryArtifact[];
|
|
47
|
+
annotationProcessors?: {
|
|
48
|
+
processors: string[];
|
|
49
|
+
options: Record<string, string>;
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
export declare class JavaProjectAnalyzer {
|
|
53
|
+
private readonly workspacePath;
|
|
54
|
+
private readonly defaultMavenStructure;
|
|
55
|
+
private readonly defaultGradleStructure;
|
|
56
|
+
constructor(workspacePath: string);
|
|
57
|
+
analyze(): Promise<JavaProjectStructure>;
|
|
58
|
+
private detectBuildSystem;
|
|
59
|
+
private findSourceDirectories;
|
|
60
|
+
private findPotentialSourceDirectories;
|
|
61
|
+
private hasJavaFiles;
|
|
62
|
+
private findTestDirectories;
|
|
63
|
+
private findResourceDirectories;
|
|
64
|
+
private findTestResourceDirectories;
|
|
65
|
+
private detectJavaVersion;
|
|
66
|
+
private analyzeDependencies;
|
|
67
|
+
private findAnnotationProcessors;
|
|
68
|
+
private getOutputDirectory;
|
|
69
|
+
private getTestOutputDirectory;
|
|
70
|
+
private fileExists;
|
|
71
|
+
private readPomXml;
|
|
72
|
+
private readGradleFile;
|
|
73
|
+
private parseMavenSourceDirectories;
|
|
74
|
+
private parseGradleSourceDirectories;
|
|
75
|
+
}
|
|
76
|
+
export declare class EclipseConfigGenerator {
|
|
77
|
+
private readonly workspaceFolder;
|
|
78
|
+
private readonly logging;
|
|
79
|
+
private readonly projectFiles;
|
|
80
|
+
private initializationPromise;
|
|
81
|
+
private readonly workspacePath;
|
|
82
|
+
constructor(workspaceFolder: WorkspaceFolder, logging: Logging);
|
|
83
|
+
generateDotClasspath(structure: JavaProjectStructure): Promise<FileMetadata[]>;
|
|
84
|
+
generateDotProject(projectName: string, structure: JavaProjectStructure): Promise<FileMetadata[]>;
|
|
85
|
+
generateDotFactorypath(structure: JavaProjectStructure): Promise<string>;
|
|
86
|
+
generateDotSettings(structure: JavaProjectStructure): Promise<Map<string, string>>;
|
|
87
|
+
private initializeProjectFiles;
|
|
88
|
+
private ensureInitialized;
|
|
89
|
+
private addAttribute;
|
|
90
|
+
private normalizePath;
|
|
91
|
+
}
|
|
92
|
+
export {};
|