From 4a2b423f0be61027098b0b8a3a53e6a17a2d600a Mon Sep 17 00:00:00 2001 From: Remi Schnekenburger Date: Thu, 22 Jun 2023 11:07:06 +0200 Subject: [PATCH] Adapt line number to be 1-based from a 0-based position. --- .../browser/editor-linenumber-contribution.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/editor/src/browser/editor-linenumber-contribution.ts b/packages/editor/src/browser/editor-linenumber-contribution.ts index a46ea25ac061a..c3a2101017243 100644 --- a/packages/editor/src/browser/editor-linenumber-contribution.ts +++ b/packages/editor/src/browser/editor-linenumber-contribution.ts @@ -15,7 +15,7 @@ // ***************************************************************************** import { EditorManager } from './editor-manager'; -import { EditorMouseEvent, MouseTargetType, TextEditor } from './editor'; +import { EditorMouseEvent, MouseTargetType, Position, TextEditor } from './editor'; import { injectable, inject, optional } from '@theia/core/shared/inversify'; import { FrontendApplicationContribution, QuickInputService, ApplicationShell, ContextMenuRenderer } from '@theia/core/lib/browser'; import { ContextKeyService } from '@theia/core/lib/browser/context-key-service'; @@ -62,10 +62,11 @@ export class EditorLineNumberContribution implements FrontendApplicationContribu if (event.target && event.target.type === MouseTargetType.GUTTER_LINE_NUMBERS) { if (event.event.button === 2) { editor.focus(); - const contextKeyService = this.contextKeyService.createOverlay([['editorLineNumber', event.target.position?.line]]); + const lineNumber = lineNumberFromPosition(event.target.position); + const contextKeyService = this.contextKeyService.createOverlay([['editorLineNumber', lineNumber]]); const uri = editor.getResourceUri()!; const args = [{ - lineNumber: event.target.position?.line!, + lineNumber: lineNumber, uri: uri['codeUri'] }]; @@ -83,3 +84,12 @@ export class EditorLineNumberContribution implements FrontendApplicationContribu } } + +function lineNumberFromPosition(position: Position | undefined): number | undefined { + // position.line is 0-based line position, where the expected editor line number is 1-based. + if (position) { + return position.line + 1; + } + return undefined; +} +