2017-06-29 1 views
3

Voilà ce que je voudrais réaliser (t est sélectionné dans l'éditeur):code VS snippet à console.log sélection sous la ligne actuelle

Avant extrait:

var t = 'Foobar'; 

Après extrait:

var t = 'Foobar'; 
console.log('t', t); 

Comment puis-je faire cela? Voici ce que j'essayé de faire:

"log_selection": { 
    "prefix": "cls", 
    "body": [ 
     "console.log('$TM_SELECTED_TEXT', $TM_SELECTED_TEXT);" 
    ], 
    "description": "Logs selected text" 
} 

Mais il suffit de remplacer le texte sélectionné avec extrait. Je pense que je pourrais utiliser TM_CURRENT_LINE ici mais je n'ai aucune idée de ce qu'il faut faire avec le texte restant dans la ligne.

Avez-vous une idée pour ça? Peut-être que c'est impossible avec un extrait? Si oui, comment puis-je obtenir l'effet désiré?

Merci.

Répondre

2

Extension macros (exécution de plusieurs commandes dans 1 liaison de touches).

settings.json:

"macros": { 
    "snippetWithDescription": [ 
     "editor.action.clipboardCopyAction", 
     "editor.action.insertLineAfter", 
     "editor.action.clipboardPasteAction", 
     "cursorHomeSelect", 
     { 
      "command": "editor.action.insertSnippet", 
       "when": "editorTextFocus", 
       "args": { 
        "snippet": "console.log(`${TM_SELECTED_TEXT}`, ${TM_SELECTED_TEXT})$0" 
       } 
     } 
    ] 
} 

keybindings.json:

{ 
    "key": "ctrl+shift+;", 
    "command": "macros.snippetWithDescription" 
} 

post-scriptum vous pouvez même omettre la partie de sélection si vous ajoutez une autre commande au début de snippetWithDescription: "editor.action.addSelectionToNextFindMatch",. Placez simplement le curseur à côté du mot et appuyez sur la touche de raccourci.

+1

Merci beaucoup Alex! :) – squidy06