Change:
const startRow = marker.startLineNumber; // Found quickfix on the same line and check relative distance to other markers <del> if ((row === currPosition.lineNumber || startRow === currPosition.lineNumber) && Math.abs(currPosition.column - col) < distance) { distance = Math.abs(currPosition.column - col); toBeModified = true; </del> <ins> if ((row === currPosition.lineNumber || startRow === currPosition.lineNumber)) { </ins> trackedPosition = new Position(row, col); <ins> const newCodeActionTrigger: CodeActionTrigger = { type: trigger.trigger.type, triggerAction: trigger.trigger.triggerAction, filter: { include: trigger.trigger.filter?.include ? trigger.trigger.filter?.include : CodeActionKind.QuickFix }, autoApply: trigger.trigger.autoApply, context: { notAvailableMessage: trigger.trigger.context?.notAvailableMessage || '', position: trackedPosition } }; const selectionAsPosition = new Selection(trackedPosition.lineNumber, trackedPosition.column, trackedPosition.lineNumber, trackedPosition.column); const actionsAtMarker = await getCodeActions(this._registry, model, selectionAsPosition, newCodeActionTrigger, Progress.None, token); if (actionsAtMarker.validActions.length !== 0) { for (const action of actionsAtMarker.validActions) { action.highlightRange = action.action.isPreferred; } // Already filtered through to only get quickfixes, so no need to filter again. if (Math.abs(currPosition.column - col) < distance) { currentActions.unshift(...actionsAtMarker.validActions); } else { currentActions.push(...actionsAtMarker.validActions); } } distance = Math.abs(currPosition.column - col); </ins> } } <ins> currentActions.filter((action, index, self) => self.findIndex((a) => a.action.title === action.action.title) === index); currentActions.sort((a, b) => { if (a.action.isPreferred && !b.action.isPreferred) { return -1; } else if (!a.action.isPreferred && b.action.isPreferred) { return 1; } else { return 0; } }); </ins> // Only retriggers if actually found quickfix on the same line as cursor <del> if (toBeModified) { const newCodeActionTrigger: CodeActionTrigger = { type: trigger.trigger.type, triggerAction: trigger.trigger.triggerAction, filter: { include: trigger.trigger.filter?.include ? trigger.trigger.filter?.include : CodeActionKind.QuickFix }, autoApply: trigger.trigger.autoApply, context: { notAvailableMessage: trigger.trigger.context?.notAvailableMessage || '', position: trackedPosition } }; const selectionAsPosition = new Selection(trackedPosition.lineNumber, trackedPosition.column, trackedPosition.lineNumber, trackedPosition.column); const actionsAtMarker = await getCodeActions(this._registry, model, selectionAsPosition, newCodeActionTrigger, Progress.None, token); const currentActions = [...codeActionSet.validActions]; if (actionsAtMarker.validActions.length !== 0) { actionsAtMarker.validActions.forEach(action => { action.highlightRange = action.action.isPreferred; }); // Already filtered through to only get quickfixes, so no need to filter again. currentActions.push(...actionsAtMarker.validActions); } return { validActions: currentActions, allActions: codeActionSet.allActions, documentation: codeActionSet.documentation, hasAutoFix: codeActionSet.hasAutoFix, dispose: () => { codeActionSet.dispose(); } }; } </del> <ins> return { validActions: currentActions, allActions: codeActionSet.allActions, documentation: codeActionSet.documentation, hasAutoFix: codeActionSet.hasAutoFix, dispose: () => { codeActionSet.dispose(); } }; </ins> } } } // temporarilly hiding here as this is enabled/disabled behind a setting. return getCodeActions(this._registry, model, trigger.selection, trigger.trigger, Progress.None, token); }); if (trigger.trigger.type === CodeActionTriggerType.Invoke) { this._progressService?.showWhile(actions, 250); }

Discussion:
Testing I was expecting quick fixes for the whole line to be included, ranked by distance to the cursor, up to a certain maximum !
Yep! That was one thing I was experimenting with, and atm it does just find the closest one. Played around with allowing all quickfixes as well, but was unsure what would feel better. Will likely work on a version where we show all potential quickfixes in the line.