Visual Studio Code многострочный комментарий для файлов без расширения - PullRequest
1 голос
/ 09 ноября 2019

Я редактирую файл без расширения (например ... или файл с неизвестным расширением и т. Д.), И когда я пытаюсь сделать многострочный комментарий, используя Cmd + /, он ничего не делает. Я могу изменить расширение на .py или .yaml, чтобы получить функцию # комментария, которую я ищу, но это полная боль. Есть ли способ сказать коду "действовать как расширение .py в файле" типа штуковины? ... или, возможно, заменить CarriageReturn + LineFeed на CarriageReturn + LineFeed плюс # плюс пробел ... или заставить Cmd + / работать?

1 Ответ

0 голосов
/ 14 ноября 2019

Я немного удивлен, но это, кажется, работает - проверь это. Вам понадобится какое-то расширение макроса. Здесь я использую мультикомандное расширение .

В вашем settings.json:

"multiCommand.commands": [

 {
   "command": "multiCommand.addCommentNoExtension",
   "sequence": [

     "editor.action.insertCursorAtEndOfEachLineSelected",        
     "cursorHome",
     {
       "command": "type",
       "args": {
         "text": "# "
       }
     },
    "removeSecondaryCursors"
   ]      
 },

{
  "command": "multiCommand.removeCommentNoExtension",
  "sequence": [

    "editor.action.insertCursorAtEndOfEachLineSelected",        
    "cursorHome",
    "deleteRight",
    "deleteRight",
    "removeSecondaryCursors"
  ]
 }
]

В вашем keybindings.json поместите эти сочетания клавиш:

{ 
  "key": "cmd+/",
  "command":  "multiCommand.addCommentNoExtension",
  "when": "editorTextFocus && resourceFilename =~ /^(?!.*\\.)/" 
},

{ 
  "key": "shift+/",
  "command":  "multiCommand.removeCommentNoExtension",
  "when": "editorTextFocus && resourceFilename =~ /^(?!.*\\.)/" 
}

Вот демонстрационная версия:

demo of commenting a file with no extension.


У этого подхода есть некоторые ограничения, а не полноценное расширение.

  1. Последняя позиция курсора не запоминается.

  2. Будут прокомментированы пустые строки - как вы можете видеть в демонстрационной версии.

  3. Когда строки с различными отступами комментируются блоком, комментарий # не будет выстраиваться в линию.

  4. Вы должны использовать одну комбинацию клавиш Cmd + / для добавления комментариев и еще одна привязка Shift + / для удаления комментариев. Я не думаю, что есть способ сделать это переключением одной команды.


Действительно интересная часть этого ответа - как файлы без расширения предназначены. В сочетаниях клавиш есть предложения когда включают resourceFilename =~ /^(?!.*\\.)/.

Когда предложения могут принимать регулярное выражение для применения к определенным ключам, таким как resourceFilename. Смотрите когда операторы предложения . Регулярное выражение /^(?!.*\\.)/ говорит о необходимости применять эту привязку клавиш, когда имя файла не содержит литерал .. Он использует отрицательный взгляд, утверждающий, что после любых символов нет ..

Я не был уверен, что это было возможно, но, похоже, это работает. Команда Cmd + / по-прежнему работает так же, как и для других типов файлов.


Вы можете использовать "when": "editorTextFocus && editorLangId == plaintext", и это будет работать до тех пор, покафайлы без расширения остались как plaintext langId файлы. Это не так специфично, как в случае когда я использовал выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...