実現したいこと
VSCodeのコードを書いた際やペーストした際にインデントを自動的に整えるようにしたいです。
発生している問題・分からないこと
VSCodeの公式によると JavaScript, TypeScript, JSON, HTML はデフォルトのフォーマッターが入っているということで、PHPをフォーマットするために PHP Intelephense をインストールしたのですが、HTML と PHP と JavaScript が混在した場合に自動整形が実行されず困っております。
該当のソースコード
PHP
1<?php 2/* 3Template Name: bbs_que_answer 4固定ページ: 回答画面 5*/ 6header('X-FRAME-OPTIONS: SAMEORIGIN'); 7get_header(); 8$sql = 'SELECT * FROM sortable'; 9$query = $wpdb->prepare($sql); 10$rows = $wpdb->get_results($query); 11// アップロードディレクトリ(パス名)を取得する 12$upload_dir = wp_upload_dir(); 13echo '<div>'; 14foreach ($rows as $row) { 15 $files = array_filter([$row->attach1, $row->attach2, $row->attach3]); 16 $views = []; //HTMLをため込む配列の初期化する 17 foreach ($files as $file) { 18 $info = pathinfo($file); 19 $attach_url = $upload_dir['baseurl'] . '/attach/' . $info['basename']; 20 $ext = $info['extension']; 21 switch ($ext) { 22 case 'jpeg': 23 case 'png': 24 $views[] = '<img style="height: 50px;" src="' . $attach_url . '">'; 25 break; 26 case 'mp4': 27 $views[] = '<video style="height: 50px;" src="' . $attach_url . '">'; 28 break; 29 case 'pdf': 30 $views[] = '<iframe style="height: 50px;" src="' . $attach_url . '"></iframe>'; 31 break; 32 default: 33 break; 34 } 35 } 36 if (empty($row->usericon)) { 37 $usericon_src = 'wp-content/themes/sample_theme/images/noimage.png'; 38 } else { 39 $usericon_src = $upload_dir['baseurl'].'/attach/'.$row->usericon; 40 } 41 // echo '<div><a href="'.$url.'">'.$row->unique_id.'</a></div>'; 42 echo '<div>' . mb_strimwidth($row->title, 0, 40, '・・・') . '</div>'; // タイトル30文字 43 echo '<div><input type="radio" name="stamp" value="' . $row->stamp . '" id="stamp"><label for="stamp"></label></div>'; // スタンプ画像 44 foreach ($views as $view) { 45 echo '<div>' . $view . '</div>'; // アップロードファイル 46 } 47 echo '<div>' . mb_strimwidth($row->text, 0, 40, '・・・') . '</div>'; // 質問文 48 echo '<div><img src="' . $usericon_src . '"></div>'; // アイコン画像 49 echo '<div>' . mb_strimwidth($row->name, 0, 10, '・・・') . '</div>'; // 名前 50} 51echo '</div>'; 52// var_dump($attach_dir); 53 54<!-- ここから回答機能 --> 55//追加コード 56// $upload_dir = wp_upload_dir(); 57$camera_url = $upload_dir['baseurl'] . '/camera.png'; 58$noimage_url = $upload_dir['baseurl'] . '/noimage.png'; 59?> 60<html> 61<div class="board_respond" id="js_board_respond"> 62 <div id="answer_Input_area"> 63 <form name="answer_Input_form"> 64 <div class="uploadfile-warning"> 65 ※ファイルサイズ15MB以内、JPG/GIF/PNG/MP4 66 </div> 67 68 <div class="user-area"> 69 <label> 70 <div class="user-icon"> 71 <img src="<?php echo $noimage_url; ?>" class="changeImg" style="height:90px;width:90px"> 72 </div> 73 </label> 74 <input type="file" class="attach" name="attach[]" data-maxsize="5" accept=".png, .jpg, .jpeg" style="display: none;"> 75 <div class="viewer" style="display: none;"></div> 76 <button type="button" class="attachclear">clear</button> 77 </div> 78 79 <div class="answer-name-area"> 80 <div class="contents"> 81 <input class="input" type="text" name="name" id="name" data-length="<?php echo MAX_LENGTH::NAME; ?>" data-minlength="<?php echo MIN_LENGTH::NAME; ?>" placeholder="未入力の場合は、匿名で表示されます"> 82 <div></div> 83 </div> 84 </div> 85 86 <div class="answer-text-area"> 87 <div class="contents"> 88 <textarea class="input" name="text" id="question" data-length="<?php echo MAX_LENGTH::TEXT; ?>" data-minlength="<?php echo MIN_LENGTH::TEXT; ?>" placeholder="荒らし行為や誹謗中傷や著作権の侵害はご遠慮ください"></textarea> 89 <div></div> 90 </div> 91 </div> 92 93 <div class="uploadfile-area"> 94 <div class="uploadfile-selector-button"> 95 <label> 96 <div class="uploadfile-camera-icon"> 97 <img src="<?php echo $camera_url; ?>" class="changeImg" style="height:150px;width:150px"> 98 </div> 99 <input type="file" class="attach" name="attach[]" accept=".png, .jpg, .jpeg, .pdf, .mp4" style="display: none;"> 100 </label> 101 <div class="viewer" style="display: none;"></div> 102 <button type="button" class="attachclear">clear</button> 103 </div> 104 <div class="uploadfile-selector-button"> 105 <label> 106 <div class="uploadfile-camera-icon"><img src="<?php echo $camera_url; ?>" class="changeImg" style="height:150px;width:150px"> 107 </div> 108 <input type="file" class="attach" name="attach[]" accept=".png, .jpg, .jpeg, .pdf, .mp4" style="display: none;"> 109 </label> 110 <div class="viewer" style="display: none;"></div> 111 <button type="button" class="attachclear">clear</button> 112 </div> 113 <div class="uploadfile-selector-button"> 114 <label> 115 <div class="uploadfile-camera-icon"> 116 <img src="<?php echo $camera_url; ?>" class="changeImg" style="height:150px;width:150px"> 117 </div> 118 <input type="file" class="attach" name="attach[]" accept=".png, .jpg, .jpeg, .pdf, .mp4" style="display: none;"> 119 </label> 120 <div class="viewer" style="display: none;"></div> 121 <button type="button" class="attachclear">clear</button> 122 </div> 123 </div> 124 <style> 125 .hideItems { /* カメラ画像 */ 126 display: none; 127 } 128 129 .concealItems { 130 display: none; 131 } 132 133 .wait { /* ローディング画像 */ 134 height: 40px; 135 width: 40px; 136 border-radius: 40px; 137 border: 3px solid; 138 border-color: #bbbbbb; 139 border-left-color: #1ECD97; 140 font-size: 0; 141 animation: rotating 2s 0.25s linear infinite; 142 } 143 144 @keyframes rotating { /* ローディング画像 */ 145 from { 146 transform: rotate(0deg); 147 } 148 149 to { 150 transform: rotate(360deg); 151 } 152 } 153 </style> 154 155 <div class="post-button"><!-- ボタンを押せなくする --> 156 <button type="button" id="submit_button" name="mode" value="confirm">確認画面へ進む</button> 157 </div> 158 <!-- type、name、id、valueの順番 --> 159 </form> 160 </div> 161 <div id="confirm_area"></div> 162 <div id="result_area"></div> 163</div> 164</html>
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
コマンドパレットから setting.json を入力後に以下の記述を追加しました。
{
"editor.formatOnSave": true
}
何かしらの理由で HTML や PHP の自動整形が出来なくなった際の対処法が参考サイトに載っていたので、 @lang:html format (Prettier - Code formatter)と @lang:php format (PHP Intelephense)にそれぞれ設定したのですが、変化がなくエラーの原因が分かりません。
補足
※VSCode でファイルを保存するときに自動でフォーマット
https://qiita.com/nyanchu/items/a9ff780a4f969722cd28
※HTMLとPHPコードをどちらもフォーマットするための設定
https://snowantenna.com/vscode-format/
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。