diff --git a/package.json b/package.json index f8808755..6d44ad83 100644 --- a/package.json +++ b/package.json @@ -256,6 +256,32 @@ "default": false, "description": "Whether to send back detailed information from error logs for diagnostic purpose.", "scope": "window" + }, + "java.copilot.inspection.renderer": { + "type": "object", + "description": "How to display rewriting suggestions.", + "properties": { + "diagnostics": { + "type": "boolean", + "default": true, + "description": "Hints (Diagnostics)" + }, + "guttericons": { + "type": "boolean", + "default": false, + "description": "Gutter Icons" + }, + "codelenses": { + "type": "boolean", + "default": false, + "description": "Code Lenses" + }, + "rulerhighlights": { + "type": "boolean", + "default": true, + "description": "Ruler Highlights (Scrollbar)" + } + } } } }, diff --git a/src/copilot/inspect/commands.ts b/src/copilot/inspect/commands.ts index 93c23990..b8e3d05a 100644 --- a/src/copilot/inspect/commands.ts +++ b/src/copilot/inspect/commands.ts @@ -45,9 +45,9 @@ export function registerCommands(copilot: InspectionCopilot, renderer: DocumentR void commands.executeCommand('vscode.editorChat.start', { autoSend: true, message: `/fix ${problem.description}, maybe ${uncapitalize(solution)}`, - position: range?.start, - initialSelection: new Selection(range!.start, range!.start), - initialRange: new Range(range!.start, range!.start) + position: range.start, + initialSelection: new Selection(range.start, range.start), + initialRange: new Range(range.start, range.start) }); }); diff --git a/src/copilot/inspect/render/DiagnosticRenderer.ts b/src/copilot/inspect/render/DiagnosticRenderer.ts index 3bca6b6a..c0450e88 100644 --- a/src/copilot/inspect/render/DiagnosticRenderer.ts +++ b/src/copilot/inspect/render/DiagnosticRenderer.ts @@ -51,7 +51,7 @@ export class DiagnosticRenderer implements InspectionRenderer { class InspectionDiagnostic extends Diagnostic { public constructor(public readonly inspection: Inspection) { const range = Inspection.getIndicatorRangeOfInspection(inspection.problem); - const severiy = inspection.severity.toUpperCase() === 'HIGH' ? DiagnosticSeverity.Information : DiagnosticSeverity.Hint; + const severiy = DiagnosticSeverity.Hint; super(range, inspection.problem.description, severiy); this.source = DIAGNOSTICS_GROUP; } diff --git a/src/copilot/utils.ts b/src/copilot/utils.ts index 8ad431db..38a2b1ea 100644 --- a/src/copilot/utils.ts +++ b/src/copilot/utils.ts @@ -43,6 +43,9 @@ export async function getIntersectionSymbolsOfRange(range: Range | Selection, do } export function getUnionRange(symbols: SymbolNode[]): Range { + if (symbols.length === 0) { + throw new Error("No symbols provided"); + } let result: Range = new Range(symbols[0].range.start, symbols[0].range.end); for (const symbol of symbols) { result = result.union(symbol.range); diff --git a/src/extension.ts b/src/extension.ts index 49efdebc..44383d66 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -83,6 +83,10 @@ async function initializeExtension(_operationId: string, context: vscode.Extensi vscode.commands.executeCommand("java.runtime"); }); } + + if (isLlmApiReady()) { + activateCopilotInspection(context); + } } async function presentFirstView(context: vscode.ExtensionContext) {