環境
formatterにLaravel Blade formatter
を使用してblade.php
をインデントしようとしている
事象
gg=G
を入力したら
Configure Default Formatter Extension 'Laravel Blade Formatter' is configured as formatter but it cannot format 'Blade'-files
と出て、インデントできない
わかったこと
Ctrl+Shift+p
で出てくるところに以下の文を打ち込むとできる場合とできない場合がある
インデント可能 editor.action.formatDocument インデント不可 editor.action.formatSelection
今後
とりあえずインデント可能なやつのショートカットキーは
Alt+Shift+f
なのでしばらくこれで過ごす
選択したものをインデントするときの処理でなんかだめっぽい Laravel Blade formatter側がだめな気がする
ちなみに
extensionのvimで呼び出している箇所は
https://github.com/VSCodeVim/Vim/blob/master/src/actions/operator.ts
だと思う
@RegisterAction class FormatOperator extends BaseOperator { public keys = ['=']; public modes = [Mode.Normal, Mode.Visual, Mode.VisualLine, Mode.VisualBlock]; public async run(vimState: VimState, start: Position, end: Position): Promise<void> { // = operates on complete lines vimState.editor.selection = new vscode.Selection(start.getLineBegin(), end.getLineEnd()); await vscode.commands.executeCommand('editor.action.formatSelection'); let line = vimState.cursorStartPosition.line; if (vimState.cursorStartPosition.isAfter(vimState.cursorStopPosition)) { line = vimState.cursorStopPosition.line; } const newCursorPosition = TextEditor.getFirstNonWhitespaceCharOnLine(vimState.document, line); vimState.cursorStopPosition = newCursorPosition; vimState.cursorStartPosition = newCursorPosition; await vimState.setCurrentMode(Mode.Normal); } }