J'essaye d'écrire une extension pour VSCode où l'écran de l'éditeur est toujours centré sur le curseur. Il existe d'autres extensions qui ajoutent une commande pour centrer l'écran sur le curseur, mais vous devez appuyer sur la commande pour l'activer.
Actuellement, le seul moyen que j'ai trouvé pour l'implémenter est de réécrire le curseur Up, cursorDown, entrez , pageUp, pageDown - toute commande qui déplace le curseur vers le haut et vers le bas en gros, puis utilisez la commande "révélerLine" avec la position de la ligne du curseur et avec l'attribut "at" comme "centre".
Y a-t-il un meilleur moyen? La réimplémentation des commandes de l'éditeur par défaut semble très inefficace.
Voici ce que j'ai actuellement:
"use strict";
import * as vscode from "vscode";
export function activate(context: vscode.ExtensionContext) {
let disposable1 = vscode.commands.registerCommand("cursorUp",() => {
centralizar();
vscode.commands.executeCommand("cursorMove", {
to: "up",
});
}
);
let disposable2 = vscode.commands.registerCommand("cursorDown",() => {
centralizar();
vscode.commands.executeCommand("cursorMove", {
to: "down",
});
}
);
context.subscriptions.push(disposable1);
context.subscriptions.push(disposable2);
}
function centralizar() {
let currentLineNumber = vscode.window.activeTextEditor.selection.start.line;
vscode.commands.executeCommand("revealLine", {
lineNumber: currentLineNumber,
at: "center"
});
}
export function deactivate() {}
3 Réponses :
L'extension Scrolloff implémente cette fonctionnalité lorsque son option "alwaysCenter" est activée. Il fonctionne en écoutant window.onDidChangeTextEditorSelection , qui se déclenche lorsque le curseur se déplace.
FYI: L'addon est désormais obsolète au profit de la solution de @ Mark.
Vous pouvez peut-être utiliser la nouvelle commande (v1.38) editor.cursorSurroundingLines . Voir notes de version scrollOff < / a>.
Cela prend un nombre, mais si vous pouvez obtenir le nombre de lignes visibles dans une fenêtre d'éditeur, définissez editor.cursorSurroundingLines sur le point médian approprié qui peut fonctionner. Il semble que vous n'auriez pas à écouter les événements de défilement. Mais devrait mettre à jour la valeur si la fenêtre de l'éditeur était redimensionnée.
Vous pouvez définir le nombre sur une valeur très élevée (j'utilise 500) et il le garde au centre.
Allez dans Fichier> Préférences> Paramètres , puis saisissez curseur dans la barre de recherche. Recherchez Cursor Surrounding Lines qui peut être défini sur 0 avec le paramètre par défaut. Réglez-le sur 10 ou 20 ou sur n'importe quelle ligne dont vous souhaitez voir les modifications.
Voici un exemple ci-dessous.
Comme Mark l'a mentionné ci-dessous, utiliser
editor.cursorSurroundingLinesest la solution la plus simple.