tag:crieit.net,2005:https://crieit.net/tags/VSCode/feed 「VSCode」の記事 - Crieit Crieitでタグ「VSCode」に投稿された最近の記事 2023-10-09T11:14:34+09:00 https://crieit.net/tags/VSCode/feed tag:crieit.net,2005:PublicArticle/18560 2023-08-31T20:08:31+09:00 2023-10-09T11:14:34+09:00 https://crieit.net/posts/VSCode-64f074af3e09d VSCode最初にやる設定メモ(全ユースケース対応) <p>VSCodeのセットアップのたびに、デフォルト設定に不便を感じていつかやらないといけない設定変更があるのでメモしておく。</p> <p><strong>files.autoGuessEncoding</strong> true<br /> SJISファイル開いて文字化けしてる人生にさよなら<br /> 有効にするとファイル開くときに文字コードを自動判別してくれる</p> <p><strong>editor.fontFamily</strong> 'BIZ UDゴシック'<br /> 真の等幅フォントはこれ 絶対等幅にしてくれる</p> <p><strong>workbench.startupEditor</strong> none<br /> 起動するたびにようこそ画面出さないようにする</p> <p><strong>window.commandCenter</strong> true<br /> コマンドランチャーをウインドウのタイトルのところに表示する</p> <p><strong>update.showReleaseNotes</strong> false<br /> VSCode更新後のリリースノートを表示しないようにする</p> <p><strong>security.workspace.trust.untrustedFiles</strong> open<br /> ファイル開こうとするたびに作成者を信頼するかどうか聞かれないようにする<br /> 野生のワークスペース開かないなら設定オススメ</p> <p><strong>editor.guides.bracketPairs</strong> active<br /> 括弧がどこからどこまでか色付けされてわかりやすくなる</p> <p><strong>extensions.ignoreRecommendations</strong> true<br /> 拡張機能のおすすめを右下にポップアップしまくるのを封じる</p> <p><strong>files.defaultLanguage</strong> plaintext<br /> 新規作成のファイルのデフォルト拡張子を決める(iniファイルで保存しようとするアホ挙動対策)<br /> 設定値は好みで</p> <p><strong>editor.renderWhitespace</strong> all<br /> 半角空白と全角空白の視認</p> <p><strong>editor.renderControlCharacters</strong> true<br /> 制御文字を表示する<br /> デフォルトではtrueかも。念の為確認する。<br /> よくわからない人も見えるようにしておいた方がいいマジで</p> <p><strong>workbench.editor.titleScrollbarSizing</strong> large<br /> タブ下のスクロールバーを太くする(初老向け)</p> <p>以下はsetting.jsonに直書きする設定</p> <p>特定拡張子のみ予測変換OFF(特定拡張子はお好みで)<br /> 文章書く時に予測出てくるのは邪魔だけど、コーディングの時は予測使うって場合に便利<br /> <strong>"[plaintext]": {"editor.quickSuggestions":false},</strong></p> <p>スクロールバーの色<br /> 各自見やすい色に変更する<br /> <strong>"workbench.colorCustomizations": {<br /> "scrollbarSlider.activeBackground": "#ABE1FA",<br /> "scrollbarSlider.background": "#ABE1FA",<br /> "scrollbarSlider.hoverBackground": "#ABE1FA"<br /> }</strong></p> uskz tag:crieit.net,2005:PublicArticle/17306 2021-05-29T15:25:05+09:00 2021-05-29T15:25:05+09:00 https://crieit.net/posts/vscode-clipboard-format-off-20210529 VSCode からテキストをコピーする際に「書式なし」をデフォルトにする <p>VSCode 上のテキストをコピーして Word に貼り付けたら、背景色なども一緒に付いてきてしまったので「書式なし」をデフォルトに設定します。</p> <h2 id="現象"><a href="#%E7%8F%BE%E8%B1%A1">現象</a></h2> <p>例えば、以下のようなテキストを VSCode からコピーします。</p> <p><a href="https://crieit.now.sh/upload_images/4d113fece8d6baf5006292cbd44737ee60b1de1298e4a.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/4d113fece8d6baf5006292cbd44737ee60b1de1298e4a.jpg?mw=700" alt="VSCode 上のテキストをコピー" /></a></p> <p>それを、 Word 等に貼り付けます。</p> <p><a href="https://crieit.now.sh/upload_images/8766f1a82a8dd7ac946249a1329b421760b1de1cdca13.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/8766f1a82a8dd7ac946249a1329b421760b1de1cdca13.jpg?mw=700" alt="Word にテキストをコピー" /></a></p> <p>すると、ご覧の通り背景色や文字色、フォントなどの書式も一緒に貼り付けてしまいます。</p> <p>このままだと困るので、 VSCode からコピーする際に「書式なし」でコピーするように設定を変更します。</p> <h2 id="対処"><a href="#%E5%AF%BE%E5%87%A6">対処</a></h2> <p>VSCode の設定を編集します。</p> <p>「ファイル」→「ユーザー設定」→「設定」と進んで、「copy with」と検索すれば、 <code>Editor: Copy With Syntax Highlighting</code> の項目が表示されるはず。</p> <p>そのチェックを外し、 VSCode を再起動。これでコピー時に書式を引き継がないようになります。</p> <p>ちなみに、 <code>settings.json</code> では以下のキーと値を追加すればOK。</p> <pre><code class="json">{ // 略 "editor.copyWithSyntaxHighlighting": false // 略 } </code></pre> <p><a href="https://crieit.now.sh/upload_images/d790b6cb4cfced0d464d151975e5024460b1de27af059.jpg" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d790b6cb4cfced0d464d151975e5024460b1de27af059.jpg?mw=700" alt="対処を実施した後、 Word にテキストをコピー" /></a></p> <p>対処後、プレーンな状態でテキストを貼り付けることができるようになりました。</p> <h2 id="参考"><a href="#%E5%8F%82%E8%80%83">参考</a></h2> <ul> <li><a target="_blank" rel="nofollow noopener" href="https://qiita.com/kaityo256/items/d39884c36bd5b35e6427">VSCodeでコピーする時に「書式なし」をデフォルトにする - Qiita</a></li> <li><a target="_blank" rel="nofollow noopener" href="https://qiita.com/ayatokura/items/35fdd2fa828447a0ee6f">【Visual Studio Code】クリップボードに文字列だけを貼り付ける設定方法 - Qiita</a></li> </ul> arm-band tag:crieit.net,2005:PublicArticle/16828 2021-04-10T00:26:58+09:00 2021-05-25T12:56:00+09:00 https://crieit.net/posts/VSCode-WSL-ssh-CMake-GoogleTest-C VSCode+WSL(ssh接続)+CMake+GoogleTestでC++プログラミング環境を構築 <p>以前の記事<br /> <a href="https://crieit.net/posts/VSCode-WSL-CMake-GoogleTest-C">VSCode+WSL+CMake+GoogleTestでC++プログラミング環境を構築</a><br /> で作った環境、なーーんかスマートじゃないなーと思ってたんですが<br /> WSLにssh接続で入るようにしたらしっくりきたので、改めて記事を書きました。<br /> ①以外は以前の記事とほぼ同じですが、この記事だけ読んでできるようにしたかったので、ご了承ください。<br /> Windows10のVersionは1803以降でお願いします。それより前だと、WSLのウインドウを開いておいてsshデーモンも起動して・・・とか毎回やらないとssh接続できないらしいです。</p> <h4 id="①VSCode&WSLでC/C++を使えるようにする"><a href="#%E2%91%A0VSCode%EF%BC%86WSL%E3%81%A7C%2FC%2B%2B%E3%82%92%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B">①VSCode&WSLでC/C++を使えるようにする</a></h4> <h6 id="①-1 WSLを使えるようにする"><a href="#%E2%91%A0-1+WSL%E3%82%92%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B">①-1 WSLを使えるようにする</a></h6> <p>画面左下の窓アイコンを右クリック→Windows Powershell (管理者)を選択。<br /> 出てきたウインドウに以下を打ち込んでしばし待ち、指示が出たらPC再起動します。</p> <pre><code>Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux </code></pre> <h6 id="①-2 ubuntuをインストール"><a href="#%E2%91%A0-2+ubuntu%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">①-2 ubuntuをインストール</a></h6> <p>Microsoft Storeを開いてubuntuと入力し出てきたUbuntu 18.04 LTSをインストール&起動します。</p> <h6 id="①-3 ubuntu初期設定、gcc、opensshインストール"><a href="#%E2%91%A0-3+ubuntu%E5%88%9D%E6%9C%9F%E8%A8%AD%E5%AE%9A%E3%80%81gcc%E3%80%81openssh%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">①-3 ubuntu初期設定、gcc、opensshインストール</a></h6> <p>インストール完了したら、ユーザー名パスワードを設定後、以下のコマンドで最新に更新、</p> <pre><code class="sh">$ sudo apt update $ sudo apt upgrade </code></pre> <p>次にgccなどをインストール、</p> <pre><code class="sh">sudo apt install build-essential </code></pre> <p>最後にopensshを入れなおします。</p> <pre><code class="sh">sudo apt-get purge openssh-server sudo apt-get install openssh-server </code></pre> <p>入れなおす事で、パスワード入力を不要にしたりとかRSA鍵を作ったりとか勝手にやってくれるっぽいです。</p> <h6 id="①-4 WindowsのVSCodeインストール"><a href="#%E2%91%A0-4+Windows%E3%81%AEVSCode%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">①-4 WindowsのVSCodeインストール</a></h6> <p>vscodeでググった一番上のリンクから「今すぐダウンロード」してインストールしてください。</p> <h6 id="①-5 VSCodeに拡張機能をインストールしてWSLに接続"><a href="#%E2%91%A0-5+VSCode%E3%81%AB%E6%8B%A1%E5%BC%B5%E6%A9%9F%E8%83%BD%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%97%E3%81%A6WSL%E3%81%AB%E6%8E%A5%E7%B6%9A">①-5 VSCodeに拡張機能をインストールしてWSLに接続</a></h6> <p>「Remote Development」で検索して出てきたやつをインストール<br /> <a href="https://crieit.now.sh/upload_images/0d06249ecfc2f7e22566f5488ed5242c60706e1070007.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/0d06249ecfc2f7e22566f5488ed5242c60706e1070007.png?mw=700" alt="image" /></a><br /> すると左側にモニタみたいなアイコンが出るのでクリック<br /> <a href="https://crieit.now.sh/upload_images/efcc14bf54749592002ebc1ca3780ae860706e33c17fd.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/efcc14bf54749592002ebc1ca3780ae860706e33c17fd.png?mw=700" alt="image" /></a><br /> 表示されたubuntu18.04を選択して右のウインドウに+がついたようなアイコンをクリックでWSLに接続し、VSCode(WSL側)のウインドウがもう一つ表示されます。以降はVSCode起動後この2ポチでWSL環境が開きます。前より簡単ですね。</p> <h6 id="①-6 VSCode(WSL側)に拡張機能をインストール"><a href="#%E2%91%A0-6+VSCode%28WSL%E5%81%B4%29%E3%81%AB%E6%8B%A1%E5%BC%B5%E6%A9%9F%E8%83%BD%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">①-6 VSCode(WSL側)に拡張機能をインストール</a></h6> <p>①-5の最後で開いたWSL側のVSCodeに以下の拡張機能をインストール<br /> ・C/C++<br /> ・他日本語などお好みで<br /> ここまでやればC/C++のコーディングとビルドはできるようになります。</p> <h4 id="②cmakeのインストール"><a href="#%E2%91%A1cmake%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">②cmakeのインストール</a></h4> <p>以降の操作は①-3で使ってたウインドウでもできますが、VSCode(WSL側)のターミナル(bash)でも行えます。コピペとかしやすいので後者をおすすめします。</p> <pre><code class="sh">sudo apt-get install cmake </code></pre> <p>おわり</p> <h4 id="③GoogleTestのインストール"><a href="#%E2%91%A2GoogleTest%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">③GoogleTestのインストール</a></h4> <p>インストール方法をググると、tar.gzダウンロードしてきてせこせこ解凍したり、makeしたあと生成物をなぜか手動でコピーしてたりと色んなインストール方法が出てきますが、苦労なくできるのは以下です。</p> <pre><code class="sh">cd git clone https://github.com/google/googletest.git cd googletest mkdir build cd build cmake .. sudo make sudo make install </code></pre> <h4 id="④C++のコード書く"><a href="#%E2%91%A3C%2B%2B%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E6%9B%B8%E3%81%8F">④C++のコード書く</a></h4> <p>書いてください。</p> <h4 id="⑤GoogleTest使ってみたソースのCMakeLists.txt"><a href="#%E2%91%A4GoogleTest%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AECMakeLists.txt">⑤GoogleTest使ってみたソースのCMakeLists.txt</a></h4> <pre><code class="sh">cmake_minimum_required(VERSION 3.0) project("hello_gtest") add_executable(hello_gtest main.cpp) target_link_libraries(hello_gtest PRIVATE gtest gmock pthread) </code></pre> <p>①②③あたりを上に書いた通りにやっておけば、includepathの指定とか特に何も書かないでも、上のような内容でビルド&実行できると思います。<br /> お疲れさまでした。次の⑥は読まなくていいです。</p> <h4 id="⑥■■■■■■■■■■"><a href="#%E2%91%A5%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0">⑥■■■■■■■■■■</a></h4> <p>前の記事で作った環境、正直なんか使いにくくてその後二度と自宅でC/C++打たなかったんですが、バチが当たってHDDがぶっ壊れたので、SSDに換装後、今回環境を作り直すにあたって、もっと楽にできるようにしてみました。</p> uskz tag:crieit.net,2005:PublicArticle/16786 2021-03-28T18:20:44+09:00 2021-08-08T16:13:11+09:00 https://crieit.net/posts/VSCode-Web 【VSCode】拡張機能一覧(主にWeb系システム開発用) <p>個人用メモ。<br /> 主にPHPを使用して開発する環境で使用している拡張機能一覧。<br /> (他のも混じっているけど)<br /> (後で追加・変更・削除するかも)</p> <h1 id="VSCode"><a href="#VSCode">VSCode</a></h1> <ul> <li><p>Bookmarks<br />  あらかじめソースコード中にブックマークを設定しておくと、他の場所からブックマークまで一瞬で移動することが出来る。</p></li> <li><p>indent-rainbow<br />  インデントを色付きで表示してくれる。</p></li> <li><p>Japanese Language Pack for Visual Studio Code<br />  VSCodeの日本語化。</p></li> </ul> <h1 id="HTML"><a href="#HTML">HTML</a></h1> <ul> <li><p>Auto Close Tag<br />  自動的に閉じタグを追記してくれる。</p></li> <li><p>Auto Rename Tag<br />  タグを変更すると、対応する閉じタグを自動的に変更してくれる。</p></li> <li><p>HTML Snippets<br />  HTMLの予測変換を表示してくれる。</p></li> <li><p>HTMLHint<br />  HTMLの文法チェックをしてくれる。</p></li> </ul> <h1 id="PHP(Laravel)"><a href="#PHP%28Laravel%29">PHP(Laravel)</a></h1> <ul> <li><p>Bracket Pair Colorizer 2<br />  メソッドやArrayなどで、対となるカッコを色付きで表示してくれる。</p></li> <li><p>php cs fixer<br />  PHPソースを自動整形してくれる。<br />  ※別途、「php-cf-fixer.phar」のインストールが必要。</p></li> <li><p>PHP Debug<br />  PHPをステップ実行してデバッグできるようになる。</p></li> <li><p>PHP IntelliSense<br />  PHPの予測変換を表示してくれる。</p></li> </ul> <p>【2021.8.8 追加】<br /> * Laravel Blade Snippets<br />  Laravelのbladeファイル内のタグやディレクティブを色付きで表示してくれる。</p> <ul> <li>Laravel Blade formatter<br />  Laravelのbladeファイル用のフォーマッタ。<br />  blade独自のディレクティブもインデントしてくれる(これ重要)。</li> </ul> <h1 id="JavaScript(Node.js,Vue.js)"><a href="#JavaScript%28Node.js%2CVue.js%29">JavaScript(Node.js,Vue.js)</a></h1> <ul> <li><p>ESLint<br />  JavaScriptの構文チェックをリアルタイムで実行してくれる。<br />  ※Vue.jsで使用するには設定が必要。</p></li> <li><p>JavaScript (ES6) code snippets<br />  JavaScriptの予測変換を表示してくれる。</p></li> <li><p>Vetur<br />  Vue.jsコードのシンタックスハイライトやコード補完、リント、フォーマットを行ってくれる。</p></li> </ul> <h1 id="CSS(Sass,SCSS)"><a href="#CSS%28Sass%2CSCSS%29">CSS(Sass,SCSS)</a></h1> <ul> <li><p>IntelliSense for CSS class names in HTML<br />  CSSクラス名を入力するときに、入力補完してくれる。</p></li> <li><p>SCSS Formatter<br />  SCSSコードを自動整形してくれる。</p></li> </ul> <h1 id="その他"><a href="#%E3%81%9D%E3%81%AE%E4%BB%96">その他</a></h1> <ul> <li><p>Log File Highlighter<br />  ログファイルの内容を色付きで表示してくれる。</p></li> <li><p>MySQL<br />  VSCodeでMySQLを使用可能にする。</p></li> <li><p>Rainbow CSV<br />  CSVファイルをカラムごとに色分けして表示してくれる。</p></li> <li><p>Regex Previewer<br />  正規表現の実行結果をプレビュー表示してくれる。</p></li> <li><p>SFTP<br />  サーバへ自動的にソースファイルをアップロードしてくれる。</p></li> </ul> <h1 id="【参考】"><a href="#%E3%80%90%E5%8F%82%E8%80%83%E3%80%91">【参考】</a></h1> <p>「Visual Studio Code」をインストールしてPHPコードのデバッグ環境を設定する方法<br /> <a target="_blank" rel="nofollow noopener" href="https://incloop.com/visualstudiocodeのデバッグ設定/">https://incloop.com/visualstudiocodeのデバッグ設定/</a></p> <p>Visual Studio Codeで作るPHP開発環境のおすすめ拡張機能17選<br /> <a target="_blank" rel="nofollow noopener" href="https://wonwon-eater.com/vscode-php-plugin/">https://wonwon-eater.com/vscode-php-plugin/</a></p> <p>VScodeの日本語化ができない 変わらない時の対処法[Visual Studio Code]<br /> <a target="_blank" rel="nofollow noopener" href="https://rabotiku-sato.com/vscode-japanese-setting">https://rabotiku-sato.com/vscode-japanese-setting</a></p> <p>vscodeでVue.jsを書くときに使っているプラグインとか<br /> <a target="_blank" rel="nofollow noopener" href="https://qiita.com/dayoshix/items/c61a75a971331418c348">https://qiita.com/dayoshix/items/c61a75a971331418c348</a></p> <p>【HTML編】Visual Studio Code おすすめプラグイン紹介 #02<br /> <a target="_blank" rel="nofollow noopener" href="https://so-da.tech/tech/vscode/vscd3/">https://so-da.tech/tech/vscode/vscd3/</a></p> <p>VSCodeのAuto Rename Tagで閉じタグも自動変更<br /> <a target="_blank" rel="nofollow noopener" href="https://tech.pjin.jp/blog/2020/04/27/vscode_extension_auto_rename_tag/">https://tech.pjin.jp/blog/2020/04/27/vscode_extension_auto_rename_tag/</a></p> <p>VSCode で HTML の文法チェックを行う拡張機能 HTMLHint<br /> <a target="_blank" rel="nofollow noopener" href="https://loumo.jp/archives/26229">https://loumo.jp/archives/26229</a></p> <p>VSCode拡張機能『indent-rainbow』でインデントを虹色にする方法<br /> <a target="_blank" rel="nofollow noopener" href="https://onedarling.site/programming/tool/vscode-indent-rainbow/">https://onedarling.site/programming/tool/vscode-indent-rainbow/</a></p> <p>【2020年版】VSCodeでhtml/css/jsの拡張機能おすすめ<br /> <a target="_blank" rel="nofollow noopener" href="https://uetani33.net/vscode-web-extensions/#toc_id_3_2">https://uetani33.net/vscode-web-extensions/#toc_id_3_2</a></p> <p>VSCode使い必見!?使って便利な Visual Studio Code 拡張機能10選<br /> <a target="_blank" rel="nofollow noopener" href="https://www.geekfeed.co.jp/geekblog/vscode_extension">https://www.geekfeed.co.jp/geekblog/vscode_extension</a></p> <p>【超便利】VSCodeでMySQLを利用する方法<br /> <a target="_blank" rel="nofollow noopener" href="https://newmtube07.com/vscode-mysql/">https://newmtube07.com/vscode-mysql/</a></p> <p>[Visual Studio Code] PHPのコードを整形する「php cs fixer」の設定<br /> <a target="_blank" rel="nofollow noopener" href="https://www.searchlight8.com/visual-studio-code-php/">https://www.searchlight8.com/visual-studio-code-php/</a></p> <p>VSCode(Visual Studio Code)でSFTP・FTP経由でファイルを自動アップロードや同期できる拡張機能「SFTP」が超便利<br /> <a target="_blank" rel="nofollow noopener" href="https://www.karelie.net/vscode-sftp/">https://www.karelie.net/vscode-sftp/</a></p> <p>Windows10でVisual Studio Code + vue-cliの開発環境構築メモ<br /> <a target="_blank" rel="nofollow noopener" href="https://belhb.hateblo.jp/entry/2020/08/08/142540">https://belhb.hateblo.jp/entry/2020/08/08/142540</a></p> <p>【2021.8.8 追加】<br /> LaravelでVisual Studio Codeを使う時に入れておきたい拡張機能3選<br /> <a target="_blank" rel="nofollow noopener" href="https://biz.addisteria.com/laravel-vscode/">https://biz.addisteria.com/laravel-vscode/</a></p> <p>Laravel blade formatter VSCode Extensionを作った<br /> <a target="_blank" rel="nofollow noopener" href="https://shufo.dev/2020/10/03/published-vscode-blade-formatter/">https://shufo.dev/2020/10/03/published-vscode-blade-formatter/</a></p> <p>VSCodeでBladeテンプレートを整形する<br /> <a target="_blank" rel="nofollow noopener" href="https://blog.nplpl.com/310">https://blog.nplpl.com/310</a></p> acmz tag:crieit.net,2005:PublicArticle/16478 2021-01-03T17:59:14+09:00 2021-03-01T07:53:14+09:00 https://crieit.net/posts/VSCode-code 【VSCode】codeコマンドで操作する <p>コマンドでまとめて拡張機能をインストールしたいときに便利</p> <h1 id="動作確認済み環境"><a href="#%E5%8B%95%E4%BD%9C%E7%A2%BA%E8%AA%8D%E6%B8%88%E3%81%BF%E7%92%B0%E5%A2%83">動作確認済み環境</a></h1> <ul> <li>VSCode 1.42.1</li> <li>macOS 10.14.6</li> </ul> <h1 id="Macのターミナルでcodeコマンドを実行できるようにする"><a href="#Mac%E3%81%AE%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E3%81%A7code%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B">Macのターミナルでcodeコマンドを実行できるようにする</a></h1> <p>※Windowsは最初からコマンド使えるので不要</p> <ol> <li>F1キーでコマンドパレットを呼び出します。</li> <li><strong>shell Command: Install 'code' command in PATH</strong>を実行すれば完了です。<br /> <img src="https://s3.qrunch.io/c3bd19a9e048fd9ee6b002dd78e3b288.png" alt="undefined.jpg" /></li> </ol> <h1 id="codeコマンド操作"><a href="#code%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E6%93%8D%E4%BD%9C">codeコマンド操作</a></h1> <h2 id="インストール済み拡張機能を確認"><a href="#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%B8%88%E3%81%BF%E6%8B%A1%E5%BC%B5%E6%A9%9F%E8%83%BD%E3%82%92%E7%A2%BA%E8%AA%8D">インストール済み拡張機能を確認</a></h2> <pre><code class="bash">$ code --list-extensions </code></pre> <ul> <li>使用例</li> </ul> <pre><code>bash-3.2$ code --list-extensions chrmarti.regex CoenraadS.bracket-pair-colorizer esbenp.prettier-vscode mechatroner.rainbow-csv mosapride.zenkaku ms-azuretools.vscode-docker MS-CEINTL.vscode-language-pack-ja ms-python.python ms-vscode-remote.remote-containers ms-vscode-remote.remote-ssh ms-vscode-remote.remote-ssh-edit ms-vscode-remote.remote-wsl ms-vscode-remote.vscode-remote-extensionpack oderwat.indent-rainbow redhat.vscode-yaml shardulm94.trailing-spaces vscode-icons-team.vscode-icons vscoss.vscode-ansible </code></pre> <h2 id="拡張機能をインストール"><a href="#%E6%8B%A1%E5%BC%B5%E6%A9%9F%E8%83%BD%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">拡張機能をインストール</a></h2> <pre><code class="bash">$ code --install-extension "拡張機能名" </code></pre> <ul> <li>使用例</li> </ul> <pre><code>bash-3.2$ code --install-extension vscoss.vscode-ansible Installing extensions... Installing extension 'vscoss.vscode-ansible' v0.5.2... Extension 'vscoss.vscode-ansible' v0.5.2 was successfully installed. </code></pre> <h2 id="拡張機能をアンインストール"><a href="#%E6%8B%A1%E5%BC%B5%E6%A9%9F%E8%83%BD%E3%82%92%E3%82%A2%E3%83%B3%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">拡張機能をアンインストール</a></h2> <pre><code class="bash">$ code --uninstall-extension "拡張機能名" </code></pre> <ul> <li>使用例</li> </ul> <pre><code>bash-3.2$ code --uninstall-extension chrmarti.regex Uninstalling chrmarti.regex... Extension 'chrmarti.regex' was successfully uninstalled! </code></pre> arohajiro tag:crieit.net,2005:PublicArticle/16240 2020-11-26T18:56:31+09:00 2021-05-25T12:15:30+09:00 https://crieit.net/posts/VSCode-WSL-CMake-GoogleTest-C VSCode+WSL+CMake+GoogleTestでC++プログラミング環境を構築 <p><strong>2021/4/9追記</strong><br /> WSLにssh接続で入った方が色々変な事気にしないでいいんじゃない?<br /> ということで、アップデートした記事を書きました。<br /> こちらになります。<br /> <a href="https://crieit.net/posts/VSCode-WSL-ssh-CMake-GoogleTest-C">VSCode+WSL(ssh接続)+CMake+GoogleTestでC++プログラミング環境を構築</a></p> <p>以下はアップデート前の記事です。</p> <hr /> <p>Windows10で掲題の環境を作成したのでメモ<br /> サクッとやりたかった<br /> 次の機会にはサクッとできるはず</p> <h4 id="①まずは↓を見ながらVSCode&WSLでC/C++を使えるようにする"><a href="#%E2%91%A0%E3%81%BE%E3%81%9A%E3%81%AF%E2%86%93%E3%82%92%E8%A6%8B%E3%81%AA%E3%81%8C%E3%82%89VSCode%EF%BC%86WSL%E3%81%A7C%2FC%2B%2B%E3%82%92%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B">①まずは↓を見ながらVSCode&WSLでC/C++を使えるようにする</a></h4> <p><a target="_blank" rel="nofollow noopener" href="https://ynucpc.github.io/blog/2020/03/24/howtowsl-vscode/">WSL+VSCODEで競技プログラミング環境構築</a></p> <p>途中、</p> <blockquote> <p>拡張機能がインストールできたら上部のメニューから「ファイル」->「フォルダーを開く」<br /> から<strong>好きなフォルダー</strong>を開いてください。</p> </blockquote> <p>と書かれているが、自分は好きなフォルダーじゃなくて、<br /> <strong>WSLのrootfsディレクトリ以下</strong>を指定した<br /> 具体的にはUbuntu18.04なら以下</p> <pre><code class="sh">C:\Users\[ユーザー名]\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs </code></pre> <p>本当にマイドキュメントとか好きなフォルダにしたら、<br /> gtest.hをincludeするときとかの補完機能がなんかアレとか、CMakelists.txtを書く時に全然アレとか、<br /> とにかく無用な苦労をしたので・・・(だから「競技プログラミング」って書いてあったのかな)</p> <h4 id="②cmakeのインストール"><a href="#%E2%91%A1cmake%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">②cmakeのインストール</a></h4> <pre><code class="text">sudo apt-get install cmake </code></pre> <p>おわり</p> <h4 id="③GoogleTestのインストール"><a href="#%E2%91%A2GoogleTest%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">③GoogleTestのインストール</a></h4> <pre><code class="sh">cd git clone https://github.com/google/googletest.git cd googletest mkdir build cd build cmake .. sudo make install </code></pre> <p>ググると色んなインストール方法が出てくるが、自分が苦労なくできたのはこれだけだった<br /> 他はヒューマンのエラーが入る余地がありすぎる<br /> 特に最後のmake installはmakeだけやって手作業で.aとか.hをコピーしてる記事が多くてなんで?? ってなった</p> <h4 id="④C++のコード書く"><a href="#%E2%91%A3C%2B%2B%E3%81%AE%E3%82%B3%E3%83%BC%E3%83%89%E6%9B%B8%E3%81%8F">④C++のコード書く</a></h4> <p>さすがに省略</p> <h4 id="⑤GoogleTest使ってみたソースのCMakeLists.txt"><a href="#%E2%91%A4GoogleTest%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AECMakeLists.txt">⑤GoogleTest使ってみたソースのCMakeLists.txt</a></h4> <pre><code class="sh">cmake_minimum_required(VERSION 3.0) project("hello_gtest") add_executable(hello_gtest main.cpp) target_link_libraries(hello_gtest PRIVATE gtest gmock pthread) </code></pre> <p>①②③あたりを上に書いた通りにやっておけば、includepathの指定とか特に何も書かないで<br /> 上の内容でビルド&実行できると思う<br /> お疲れさまでした。次の⑥は読まなくていいです</p> <h4 id="⑥■■■■■■■■■■"><a href="#%E2%91%A5%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0%E2%96%A0">⑥■■■■■■■■■■</a></h4> <p>仕事でどうしてもわかんないとこがあったが職場にいられる時間があまりなく、<br /> しかたない、家でC++環境構築してやってみるか・・男の子なら自宅WindowsPCで<br /> CやC++のコンパイル環境があるべきだよな・・・<br /> と思ってとりかかったら、上記の環境設定だけで終わってしまった</p> <p>何も考えず仮想PCにlinux入れてssh接続でやる方法ならむしろ確実だったが<br /> 「めんどい&重い&時間かかる」<br /> というのはわかっていたので、他に軽い方法ないかとググったらMinGWを使う方法がいっぱいでてきた<br /> このMinGWが無駄にした時間のほぼ全て<br /> 最初のapt-getに相当する部分でpacmanとか打ち込まされる時点で嫌な予感がして、<br /> 騙されたかなと思ってそれでもやってみたら騙された<br /> MinGWってなんで今も存在してるんだろう・・・</p> <p>WSLはすごい楽でした<br /> ありがとうMicroSoft</p> uskz tag:crieit.net,2005:PublicArticle/16237 2020-11-25T17:55:46+09:00 2020-11-25T17:55:46+09:00 https://crieit.net/posts/c-c-doxygen c,c++のコメントメモ(doxygenを使用) <p>この記事ははてなをメインにQrunch(閉鎖済み)、Crieitにクロス投稿しています</p> <h4 id="環境"><a href="#%E7%92%B0%E5%A2%83">環境</a></h4> <p>VisualStudio2017</p> <p>VisualStudio2019</p> <p>VSCode</p> <h4 id="Doxygenで生成したドキュメントのどこで表示されるかわからない"><a href="#Doxygen%E3%81%A7%E7%94%9F%E6%88%90%E3%81%97%E3%81%9F%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E3%81%A9%E3%81%93%E3%81%A7%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%E3%81%8B%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84">Doxygenで生成したドキュメントのどこで表示されるかわからない</a></h4> <p>変数等の@briefは詳解の前の簡単な説明と詳解の後のところに表示。<br /> @detailsは詳解のところに表示される。</p> <h4 id="コメントの書く場所をどうすべきか"><a href="#%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E6%9B%B8%E3%81%8F%E5%A0%B4%E6%89%80%E3%82%92%E3%81%A9%E3%81%86%E3%81%99%E3%81%B9%E3%81%8D%E3%81%8B">コメントの書く場所をどうすべきか</a></h4> <p>VisualStudioではcppに書いたときInteliSenseが機能しなかったので<br /> ヘッダーに書くのが良さそうです。<br /> ただテンプレート関数をクラス内で多用するとコメントと合わせかなり行数が増えるので注意が必要です。<br /> <del>どうにかしたい・・・</del></p> <h4 id="前置簡易コメント"><a href="#%E5%89%8D%E7%BD%AE%E7%B0%A1%E6%98%93%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88">前置簡易コメント</a></h4> <pre><code>/// コメント /// @detailsと同じ扱いに int i; /// コメント </code></pre> <p>このコメントはvisualstudioで使うとxmlコメントの書き方に被るみたいで<br /> InteliSense(変数や関数を選んだときに表示されるやつ)に表示されません。<br /> なので以下を使用しました。</p> <pre><code>//! コメント //!@brief 説明 </code></pre> <h4 id="後置コメント"><a href="#%E5%BE%8C%E7%BD%AE%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88">後置コメント</a></h4> <pre><code>int a;///<コメント </code></pre> <p>これもvisualstudioでは「XMLコメントに無効なXMLが含まれます」と表示されるので</p> <pre><code>int a//!<コメント </code></pre> <p>を使用しました。<br /> あと、Visual studioのc++用のxmlコメントは拡張機能で使用可能みたいです。</p> <p><a target="_blank" rel="nofollow noopener" href="http://cercopes-z.com/Doxygen/list-command-dxy.html">[VisualStudio]C++でもXMLドキュメントコメントを自動挿入したい!!</a></p> <h4 id="各ファイルのコメント"><a href="#%E5%90%84%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88">各ファイルのコメント</a></h4> <p>一番始めにいります。<br /> 最低限この2行あれば十分っぽいです。</p> <pre><code>/*! @file 何も書かなくてもいい @brief このファイルの説明を書く ファイル一覧のところに出力されます */ </code></pre> <h4 id="変数、マクロのコメント"><a href="#%E5%A4%89%E6%95%B0%E3%80%81%E3%83%9E%E3%82%AF%E3%83%AD%E3%81%AE%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88">変数、マクロのコメント</a></h4> <pre><code>int hp;//!@brief コメント //!@brief     コメント //!@details   コメント int mp; </code></pre> <p>基本後置コメントがスマートでいいのですが複数行に対応してないみたいなので<br /> 複数行に書く場合は前置のほうがいいです。</p> <h4 id="関数のコメント"><a href="#%E9%96%A2%E6%95%B0%E3%81%AE%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88">関数のコメント</a></h4> <pre><code>/*! @brief 関数の要約 @param 引数名 引数の詳細引数の個数分かく @return 戻り値の詳細 @details 関数の細かい説明 */ </code></pre> <h4 id="クラス、列挙体へのコメント"><a href="#%E3%82%AF%E3%83%A9%E3%82%B9%E3%80%81%E5%88%97%E6%8C%99%E4%BD%93%E3%81%B8%E3%81%AE%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88">クラス、列挙体へのコメント</a></h4> <pre><code>/*! @brief 要約 クラスなら一覧にも書かれます @details 細かい説明 */ </code></pre> <h4 id="便利なコメント"><a href="#%E4%BE%BF%E5%88%A9%E3%81%AA%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88">便利なコメント</a></h4> <div class="table-responsive"><table> <thead> <tr> <th>@todo</th> <th>書くとTODOリストが自動で作成されめっちゃ便利!</th> </tr> </thead> <tbody> <tr> <td>@see</td> <td>参照したい関数、変数を書ける</td> </tr> <tr> <td>@note</td> <td>メモを書ける</td> </tr> <tr> <td>@n</td> <td>文の途中で改行してくれます。</td> </tr> <tr> <td>@retval</td> <td>@returnの代わりに使用 戻り値ごとの細かい説明を書ける。</td> </tr> </tbody> </table></div> <h4 id="参考にしたサイト"><a href="#%E5%8F%82%E8%80%83%E3%81%AB%E3%81%97%E3%81%9F%E3%82%B5%E3%82%A4%E3%83%88">参考にしたサイト</a></h4> <p><a target="_blank" rel="nofollow noopener" href="http://cercopes-z.com/Doxygen/list-command-dxy.html">Doxygen コマンド一覧</a><br /> <a target="_blank" rel="nofollow noopener" href="https://teratail.com/questions/69989">C++で///を使ったコメント - teratail</a></p> <h4 id="VSCodeの拡張機能(2020-11-25追記)"><a href="#VSCode%E3%81%AE%E6%8B%A1%E5%BC%B5%E6%A9%9F%E8%83%BD%282020-11-25%E8%BF%BD%E8%A8%98%29">VSCodeの拡張機能(2020-11-25追記)</a></h4> <p>VSCodeにはDoxygen形式のコメントを自動生成してくれるとても便利な拡張機能があります<br /> <a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=cschlosser.doxdocgen">Doxygen Documentation Generator</a><br /> 関数やクラスの前、ファイルの先頭で/**と改行だけで必要な内容を生成できるのでとてもおすすめです。</p> jupi tag:crieit.net,2005:PublicArticle/16051 2020-09-07T14:22:14+09:00 2020-09-07T23:02:38+09:00 https://crieit.net/posts/Nuxt-js-lint Nuxt.jsにlintを導入してみた <h2 id="動機"><a href="#%E5%8B%95%E6%A9%9F">動機</a></h2> <p>以前からなんとなくeslintは導入してあーだこーだしてたのですが、ポートフォリオサイトやブログサイトをNetlifyからFirebaseに移植する際に、github actions(CI)を使うようになり、せっかくだからもう少し本格的にlintやtestを導入してみようということで、色々調べて導入してみました。</p> <p>その手順を初心者なりに備忘録としてまとめてみました。<br /> (だいぶ我流な部分もありますが多めに見ていただければ幸いです)</p> <p>アドバイスなどは大歓迎です。</p> <p>知識が増えたら随時更新します。</p> <p><a target="_blank" rel="nofollow noopener" href="https://blog.taka1156.site">https://blog.taka1156.site</a></p> <p><a target="_blank" rel="nofollow noopener" href="https://github.com/taka1156/nuxt-blog">https://github.com/taka1156/nuxt-blog</a> - アトミックデザインの形にプロジェクトを見直し中</p> <p>↑ブログのプロジェクトで導入してみました。(Nuxt.js + Firebase + microCMS 構成)</p> <h2 id="環境"><a href="#%E7%92%B0%E5%A2%83">環境</a></h2> <ul> <li>mac OS Catalina</li> <li>Node.js v12.16.1</li> <li>npm v6.14.3</li> <li>yarn v1.22.0</li> </ul> <h2 id="手順"><a href="#%E6%89%8B%E9%A0%86">手順</a></h2> <ol> <li><p>これらをインストール</p> <ul> <li><p>eslint関連<br /> <code>yarn add eslint eslint-config-prettier eslint-plugin-prettier eslint-plugin-vue babel-eslint</code></p></li> <li><p>stylelint関連<br /> <code>yarn add stylelint stylelint-config-standard stylelint-config-prettier stylelint-prettier</code></p></li> <li><p>prettier<br /> <code>yarn add prettier</code></p></li> </ul> <p>※ なんでprettierを入れたか<br /> eslintだけだとエラーは出すが修正はしない項目(コード整形関連)もあるので併用する。<br /> (逆にprettierは細かい命名規則や処理に関するエラーは出さない?)</p></li> <li><p>設定ファイルを書く</p> <ul> <li>.eslintrc.json</li> </ul> <pre><code class="json">{ "parserOptions": { "parser": "babel-eslint", "sourceType": "module" }, "extends": [ "eslint:recommended", "plugin:vue/recommended", "plugin:prettier/recommended", "prettier/vue" ], "plugins": [ "vue" ], "env": { "jest": true, "browser": true, "es6": true, "node": true }, "globals": {}, "rules": { "camelcase": [2,{"properties": "always"}], "quotes": [2,"single", { "avoidEscape": true } ], "eqeqeq": [2, "always", {"null": "ignore"}], "prefer-const": 2, "vue/component-name-in-template-casing": "off", "vue/no-v-html": "off" } } </code></pre> <ul> <li>.stylelintrc.json</li> </ul> <pre><code class="json">{ "extends": ["stylelint-config-standard", "stylelint-prettier/recommended"], "rules": { "color-no-invalid-hex": true, "color-hex-case": "lower", "selector-class-pattern": "^(?:(?:o|c|u|t|s|is|has|_|js|qa)-)?[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*(?:__[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*)?(?:--[a-zA-Z0-9]+(?:-[a-zA-Z0-9]+)*)?(?:\\[.+\\])?$" } } </code></pre> <ul> <li>.eslintignore, .stylelintignore<br /> ※ storybook-static、coverage は storybookやjestを導入していると生成されるファイル</li> </ul> <pre><code class="txt"># ビルドファイル dist storybook-static coverage # 設定、モジュール .nuxt .storybook node_modules </code></pre> <ul> <li>.prtteirrc.json</li> </ul> <pre><code class="json">{ "printWidth": 85, "tabWidth": 2, "singleQuote": true, "semi": true, "bracketSpacing": true, "arrowParens": "avoid" } </code></pre></li> <li><p>scriptsを追加</p> <pre><code class="json">"scripts": { "lint-js": "eslint --ext .js,.vue .", "lint-style": "stylelint \"**/*.vue\" \"**/*.css\"", "lint-js:fix": "eslint --ext .js,.vue . --fix", "lint-style:fix": "stylelint \"**/*.vue\" \"**/*.css\" --fix", "lint:check": "yarn lint-js & yarn lint-style", "lint:fix": "yarn lint-js && yarn lint-style", ... } </code></pre></li> <li><p>お好みでvscode設定を追加<br /> 保存時に勝手にlint処理が走るようになるので便利<br /> (vscode/setting.jsonに記述)</p> <pre><code class="json">{ "comments": "保存時にeslint、stylelintを自動実行", "eslint.alwaysShowStatus": true, "editor.codeActionsOnSave": { "source.fixAll.eslint": true, "source.fixAll.stylelint": true }, } </code></pre></li> </ol> <h2 id="まとめ"><a href="#%E3%81%BE%E3%81%A8%E3%82%81">まとめ</a></h2> <p>eslint、stylelintについてざっくりと使い方やルールの指定方法についてわかってきたので、<br /> 積極的に活用して読みやすいコードを意識していきたいですね。</p> <p>また、eslintルールについても、気になるものがあればまとめてみようと思います。</p> taka1156 tag:crieit.net,2005:PublicArticle/16019 2020-07-28T20:55:49+09:00 2020-07-28T20:56:40+09:00 https://crieit.net/posts/Visual-Studio-Code-UnityEngine-UI Visual Studio Code内でUnityEngine.UIなどへの参照ができない(インテリジェンスが働かない)場合の修正方法 <p>Unity 2019.3.10f1で確認しています。<br /> 2019.4以降では解決しているかもしれません。</p> <h2 id="発生する現象"><a href="#%E7%99%BA%E7%94%9F%E3%81%99%E3%82%8B%E7%8F%BE%E8%B1%A1">発生する現象</a></h2> <p>Unity2019でプロジェクトを作成するとUnityではエラーが発生していないにも関わらず、Visual Studio Code内でUsing UnityEngine.UIなどへ参照ができない現象が発生します。</p> <p><a href="https://crieit.now.sh/upload_images/2c49c6834fd352a33cedc850cc0eab665f201218275ca.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2c49c6834fd352a33cedc850cc0eab665f201218275ca.png?mw=700" alt="image" /></a><br /> ↑画像のようにUIの下に赤線が表示される</p> <p>UnityEngin.UIにあるImageも正常に参照できておらずimage.まで打っても候補が表示されない。<br /> <a href="https://crieit.now.sh/upload_images/053dd0bbc7386336b12c79ffa17d4f315f20122ddff4b.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/053dd0bbc7386336b12c79ffa17d4f315f20122ddff4b.png?mw=700" alt="image" /></a></p> <h3 id="表示されるエラー内容"><a href="#%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%E3%82%A8%E3%83%A9%E3%83%BC%E5%86%85%E5%AE%B9">表示されるエラー内容</a></h3> <p><a href="https://crieit.now.sh/upload_images/3a4a5795e73e6e46b9335ed1172d253d5f2011105d415.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/3a4a5795e73e6e46b9335ed1172d253d5f2011105d415.png?mw=700" alt="image" /></a></p> <pre><code>Using directive is unnecessary. [Assembly-CSharp]csharp(IDE0005) Unnecessary using directive. [Assembly-CSharp]csharp(CS8019) The type or namespace name 'UI' does not exist in the namespace 'UnityEngine' (are you missing an assembly reference?) [Assembly-CSharp]csharp(CS0234) </code></pre> <h2 id="解決方法"><a href="#%E8%A7%A3%E6%B1%BA%E6%96%B9%E6%B3%95">解決方法</a></h2> <p>Package ManagerからVisual Studio Code Editorのパッケージのバージョンを上げる<br /> メニューのWindowからPackage Managerを開きVisual Studio Code Editorを選択します。<br /> <a href="https://crieit.now.sh/upload_images/9cae6712694566728ba164b07b0de6a55f2011a170923.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/9cae6712694566728ba164b07b0de6a55f2011a170923.png?mw=700" alt="image" /></a><a href="https://crieit.now.sh/upload_images/efb9498b362bae3503042cf8d346d1d45f2011ac96429.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/efb9498b362bae3503042cf8d346d1d45f2011ac96429.png?mw=700" alt="image" /></a><br /> 初期は1.1.4になっているはずなので、1.2.0を選び右下の<strong>Update to 1.2.0</strong>ボタンを押して更新します。</p> <p>更新後はVisual Studio Codeを再起動してください。</p> <p>再起動後も参照ができないままのときは、少し時間をおいてからVisual Studio Codeを再起動してみてください。</p> block tag:crieit.net,2005:PublicArticle/16018 2020-07-27T08:40:30+09:00 2020-07-27T08:40:52+09:00 https://crieit.net/posts/Windows-VSCode-git-add-outside-repository WindowsのVSCodeでファイルをgit addしようとするとoutside repositoryエラーが出る <p>VSCodeのUIで編集したファイルのプラスボタンを押してgit addしようとすると、下記のようなエラーが出るようになっていた。結構古いプロジェクトだった。他のプロジェクトでは発生しない。Windowsだけ発生する現象かもしれない。</p> <pre><code class="text">fatal: d:\users\documents\apps\app\src\entity\Answer.ts: 'd:\users\documents\apps\app\src\entity\Answer.ts' is outside repository </code></pre> <p>これによりaddができない。試しにシェルでaddしてみたら普通にaddできた。VSCodeのUIでだけaddできない。</p> <p>調べてみると、 <code>git update-git-for-windows</code> でgit自体をバージョンアップすれば良いらしい。詳しくは下記の情報。</p> <p><a target="_blank" rel="nofollow noopener" href="https://stackoverflow.com/questions/13790592/how-to-upgrade-to-the-latest-version-of-git-on-windows-still-showing-older-vers">https://stackoverflow.com/questions/13790592/how-to-upgrade-to-the-latest-version-of-git-on-windows-still-showing-older-vers</a></p> <p>とにかくgitのバージョン2.13あたり以前だと発生するらしい。多分ドライブ文字列が小文字になってるところが原因っぽいのだろうと。何にしろ詳しくはわからないが、バージョンアップすれば改善した。</p> <p>バージョンの確認</p> <pre><code>git version </code></pre> <p>アップグレード</p> <pre><code>git update-git-for-windows </code></pre> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/15556 2019-11-19T22:46:45+09:00 2020-04-04T11:13:43+09:00 https://crieit.net/posts/VSCode-14-3 使ってよかったVSCode拡張機能14選+3選の紹介 <h1 id="一軍"><a href="#%E4%B8%80%E8%BB%8D">一軍</a></h1> <p>この枠で紹介している拡張機能は、高い汎用性を持っており私自身も良く使っている拡張機能たちです。</p> <h2 id="Settings Sync♻️"><a href="#Settings+Sync%E2%99%BB%EF%B8%8F">Settings Sync♻️</a></h2> <p>VS Codeの拡張機能を移行する場合や、バックアップするときに大活躍!<br /> とりあえず入れとけスタイルでオッケーな拡張機能。<br /> かったるい移行作業をめちゃくちゃ楽にしてくれる。端末が壊れても安心だし、真っ先に入れても良い拡張機能かも。自分で管理しても良いけどね。</p> <p><a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync">Download Page</a></p> <h2 id="テキスト校正くん👨‍🎓"><a href="#%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E6%A0%A1%E6%AD%A3%E3%81%8F%E3%82%93%F0%9F%91%A8%E2%80%8D%F0%9F%8E%93">テキスト校正くん👨‍🎓</a></h2> <p>VS Code上にあるテキストを自動で添削してくれるスグレモノ。<br /> どこかに議事録やまとめた文章を提出する前に少し確認するだけで、最低限の日本語は担保されるところが良い😚</p> <p><a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=ICS.japanese-proofreading">Download Page</a></p> <h2 id="Code Spell Checker👨‍🏫"><a href="#Code+Spell+Checker%F0%9F%91%A8%E2%80%8D%F0%9F%8F%AB">Code Spell Checker👨‍🏫</a></h2> <p>テキスト修正の英語版。間違ったスペルを教えてくれる。これでtypoが結構減ると思います。英語が苦手なあなたでも安心(俺やんけ)。<br /> 固有名詞もユーザ辞書登録すれば、エラー回避できるので便利。</p> <p><a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker">Download Page</a></p> <h2 id="Trailing Spaces✨"><a href="#Trailing+Spaces%E2%9C%A8">Trailing Spaces✨</a></h2> <p>こいつをいれてから、文章の後ろにムダなスペースを入れることはなくなった。<br /> 赤色で視覚的も見やすくGood(色は変更可能)。ただし、Markdown書くときの改行はちょっと気になる。</p> <p><a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=shardulm94.trailing-spaces">Download Page</a></p> <h2 id="indent-rainbow🌈"><a href="#indent-rainbow%F0%9F%8C%88">indent-rainbow🌈</a></h2> <p>その名の通り、インデントに色を付けてくれる拡張機能。<br /> パット見でどこのラインを編集しているのかがわかるので、非常に便利。ネストが深くなっても安心😇(だからといって深くするのはやめてくれ…)</p> <p><a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=oderwat.indent-rainbow">Download Page</a></p> <h2 id="Bracket Pair Colorizer🌈"><a href="#Bracket+Pair+Colorizer%F0%9F%8C%88">Bracket Pair Colorizer🌈</a></h2> <p>ペアの括弧同士が同じ色になるので、どこで始まってどこで終わるのかがわかりやすい。<br /> <code>python</code>などのインデントがプログラムの仕組みに組み込まれているものなら<code>indent-rainbow</code>だけで問題ないのですが、変なインデントが大量にある闇プロジェクトではこちらが大活躍します。普通に使ってても十分に便利なんですけどね。<br /> 後は完全な独断と偏見なのですが、関数型言語にはあったほうが良いと思われます(括弧がいっぱいあるから)。</p> <p><a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=formulahendry.code-runner">Download Page</a></p> <h2 id="Visual Studio IntelliCode💡"><a href="#Visual+Studio+IntelliCode%F0%9F%92%A1">Visual Studio IntelliCode💡</a></h2> <p>勝手に候補の中から、一番いい感じのやつを選択してくれるやつ。<br /> あんまり意識したことはないけど、便利に使えているということは役に立っていると思われ</p> <p><a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode">Download Page</a></p> <h2 id="vscode-icons🏷"><a href="#vscode-icons%F0%9F%8F%B7">vscode-icons🏷</a></h2> <p>多分定番の拡張機能。さまざまなiconが視覚的にわかりやすく表示されるようになる。<br /> 個人的には、フォルダーの識別とかが好き。</p> <p><a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=vscode-icons-team.vscode-icons">Download Page</a></p> <h2 id="Markdown Preview Enhanced🔍"><a href="#Markdown+Preview+Enhanced%F0%9F%94%8D">Markdown Preview Enhanced🔍</a></h2> <p>Markdown Previewの拡張版。PlantUmlが使えたり、<code>pdf</code>化や<code>html</code>化が行えるようになっていたりと、<br /> 大幅に拡張されている。とりあえず入れておきたい拡張機能の1つ。</p> <p><a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=shd101wyy.markdown-preview-enhanced">Download Page</a></p> <h2 id="Marp for VS Code🎨"><a href="#Marp+for+VS+Code%F0%9F%8E%A8">Marp for VS Code🎨</a></h2> <p>MarkdownToSlideの決定版。<br /> Chromeのパスを指定してあげることで、<code>pdf</code>や<code>pptx</code>などのスライドへVS Code上から変換できる。<br /> Marp CLIもいいけど、ぱっと簡単に使うならこっち。<br /> ちなみに、MacのChromeパスは<code>/Applications/Google\ Chrome.app/</code>で設定すればおkなはず。</p> <p><a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=marp-team.marp-vscode">Download Page</a></p> <h2 id="Live Server🐟"><a href="#Live+Server%F0%9F%90%9F">Live Server🐟</a></h2> <p>ワンクリックで、現在のディレクトリを元にしたローカルサーバを建てられるスグレモノ。<br /> ローカルで何か確認したいときがあればこちらをどうぞ。</p> <p><a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer">Download Page</a></p> <h2 id="GitLens — Git supercharged🥽"><a href="#GitLens+%E2%80%94+Git+supercharged%F0%9F%A5%BD">GitLens — Git supercharged🥽</a></h2> <p>その名の通り、<code>git</code>をめちゃくちゃ便利にしてくれる拡張機能です。<br /> 行の右にコミットが表示されたり、過去の履歴を表示させたりと<code>git</code>のことならこいつにおまかせ感がある。</p> <p><a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens">Download Page</a></p> <h2 id="Code Runner🏃‍♂️"><a href="#Code+Runner%F0%9F%8F%83%E2%80%8D%E2%99%82%EF%B8%8F">Code Runner🏃‍♂️</a></h2> <p>ちょっとコードを動作させたいときにとても便利です。<br /> さまざまな言語に対応しているみたいなので、結構好きな言語でショートコードの確認ができたりする。</p> <p><a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=formulahendry.code-runner">Download Page</a></p> <h2 id="TODO Highlight💡"><a href="#TODO+Highlight%F0%9F%92%A1">TODO Highlight💡</a></h2> <p><code>TODO:</code>や<code>FIXME:</code>などがデフォルトで設定されていますが、<code>NOTE:</code>や<code>DONE:</code>など、自身のオリジナルタグを追加することで色々な用途に利用可能です!<br /> 自分はメモとかにも利用しています。</p> <p><a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=wayou.vscode-todo-highlight">Download Page</a></p> <h1 id="二軍"><a href="#%E4%BA%8C%E8%BB%8D">二軍</a></h1> <p>そこまで頻繁に使わないものや、少し尖ったもの。</p> <h2 id="vscode-spotify🎵"><a href="#vscode-spotify%F0%9F%8E%B5">vscode-spotify🎵</a></h2> <p>下のバーにSpotifyの情報が表示される。<br /> 音楽聴きながら作業していると、地味に画面移動をするシーンが多いのでVS Code1つで収まるのは便利。</p> <p><a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=shyykoserhiy.vscode-spotify">Download Page</a></p> <h2 id="Better Comments📝"><a href="#Better+Comments%F0%9F%93%9D">Better Comments📝</a></h2> <p>特定のコメント文字列(TODO、!、?など)に対して、色を付けてくれる拡張機能です。</p> <p><a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=aaron-bond.better-comments">Download Page</a></p> <h2 id="filesize📁"><a href="#filesize%F0%9F%93%81">filesize📁</a></h2> <p>左下にファイルのサイズを表示するだけのアプリ。たまに便利。</p> <p><a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=mkxml.vscode-filesize">Download Page</a></p> matsu4ki tag:crieit.net,2005:PublicArticle/15469 2019-10-09T11:22:41+09:00 2019-10-09T11:22:41+09:00 https://crieit.net/posts/Proxy-vscode-WSL-5d9d4471f2671 Proxy 下で vscode の WSL 上の他の拡張機能のインストールに失敗する <p>プロキシ環境下の vscode で、 WSL 上で拡張機能を動かしたいのに、 インストールインストールに失敗する問題を解決するメモ。</p> <p>前回の↓の記事は、 『Remote – WSL 拡張が有効にできない』問題だったが、今回は『Remote – WSL 拡張 を有効にした後、その環境上で他の拡張機能がインストールできない』問題なのでちょっと違う点に注意。ややこしいね。<br /> <a href="https://crieit.net/posts/Proxy-vscode-WSL">https://crieit.net/posts/Proxy-vscode-WSL</a></p> <h2 id="遭遇した問題"><a href="#%E9%81%AD%E9%81%87%E3%81%97%E3%81%9F%E5%95%8F%E9%A1%8C">遭遇した問題</a></h2> <p>Visual Sutdio Code (以下、 vscode) へ 無事に Remote – WSL 拡張機能 の "VS Code Server for WSL" のインストールが完了し、 Windows 上から 快適に WSL の環境にアクセスできるようになった。<br /> しかし、 いくつかの vscode の拡張機能は、 Windows 上の環境とは別に WSL 上の環境で改めてインストールしなくてはならない。</p> <p>そこで、 UI 上の案内に従って各拡張機能で "Install in WSL" を行ったところ、 プロキシ環境下だと以下のエラーが発生してインストールに失敗する問題に遭遇した。</p> <pre><code class="text">Failed to install extension </code></pre> <p>パネル上の OUTPUT タブで "Log (Remote Server)" の情報を見ると、以下のようなエラーが発生しているのがわかる。</p> <pre><code class="text">[remoteagent] [error] Failed to install extension: {拡張機能ID} connect ECONNREFUSED 13.107.6.175:443 </code></pre> <p>settings.json ではプロキシの設定しているし、更には WSL 上の環境変数 (<code>http_proxy</code>, <code>https_proxy</code>) にだってプロキシを入れている。<br /> 更には(前述の)前回の記事に倣って、 WSL のコンソール上から <code>code .</code> の立ち上げまで行ってみた。</p> <p>それでも解消しない。何故だ。</p> <p>なお、試した vscode のバージョンは、 August 2019 (version 1.38.1) だ。</p> <h2 id="&quot;Remote [WSL]&quot; 用の設定ファイルを書き換える"><a href="#%26quot%3BRemote+%5BWSL%5D%26quot%3B+%E7%94%A8%E3%81%AE%E8%A8%AD%E5%AE%9A%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E6%9B%B8%E3%81%8D%E6%8F%9B%E3%81%88%E3%82%8B">"Remote [WSL]" 用の設定ファイルを書き換える</a></h2> <p>Remote – WSL 拡張をインストールすると、 Settings のウィンドウに "Remote [WSL]" というタブが増えている。<br /> <a href="https://crieit.now.sh/upload_images/c1422cf5784c566f688efb098c252f495d9d4402696fa.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/c1422cf5784c566f688efb098c252f495d9d4402696fa.png?mw=700" alt="1910_vscode-remote-wsl_01.png" /></a></p> <p>そのタブに移動してみると、 Proxy の設定が空欄になっているのがわかる。<br /> <a href="https://crieit.now.sh/upload_images/d51b7217c7491a53f7a90acaf108f09f5d9d4419a4903.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/d51b7217c7491a53f7a90acaf108f09f5d9d4419a4903.png?mw=700" alt="1910_vscode-remote-wsl_02.png" /></a><br /> "Modified in: User" って書いてあるので、 User タブの内容で上書きされる動作をしてくれそうだったり、 設定されてなかったら <code>http_proxy</code>, <code>https_proxy</code> の環境変数の値が使われると書いてあったりしているが、 とりあえずその情報は無視。</p> <p>この "Remote [WSL]" 上のプロキシの設定も、 User タブと同様に改めて記載して保存し、 vscode をリロードしてみる。<br /> <a href="https://crieit.now.sh/upload_images/2d1f0e628d1ffe8769c785993596ba165d9d442db205f.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/2d1f0e628d1ffe8769c785993596ba165d9d442db205f.png?mw=700" alt="1910_vscode-remote-wsl_03.png" /></a></p> <p>その結果、 <strong>WSL 上の拡張機能もインストールに成功するようになった!</strong></p> <h2 id="まとめ"><a href="#%E3%81%BE%E3%81%A8%E3%82%81">まとめ</a></h2> <ul> <li>プロキシ環境下で WLS - Remote を使うときは、 Settings の "Remote [WSL]" タブにもプロキシの設定を書こう。</li> <li>WSL 上の <code>http_proxy</code>, <code>https_proxy</code> の環境変数を設定しただけでは、 vscode の全ての通信をプロキシ経由にするには不十分のようだ。 <ul> <li><a target="_blank" rel="nofollow noopener" href="https://aquasoftware.net/blog/?p=1172">VS Code Server for WSL の更新のため</a> に、これらの環境変数は設定しておくべき。</li> <li>もしかしたら、 Windows 側の環境変数にも上記の値を設定させておけば、 本問題が発生しないのかも知れないが、試していない。</li> </ul></li> <li>vscode のプロキシ環境下の動作の作り込みは、まだまだ甘い。</li> </ul> advanceboy tag:crieit.net,2005:PublicArticle/15468 2019-10-09T11:02:59+09:00 2019-10-09T11:32:30+09:00 https://crieit.net/posts/Proxy-vscode-WSL Proxy 下で vscode の WSL 拡張へ接続できない <p>Windows 上の Visual Studio Code (以下、 vscode) で、WSL 上のファイルやシェルを使えるようになる、 <a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl">Remote - WSL</a> 拡張機能。</p> <p>これを、プロキシ環境下でインストールしたり更新したりすると、 vscode から WSL 環境ににアクセスするときに、</p> <pre><code class="text">VS Code Server for WSL closed unexpectedly. Check WSL terminal for mor details. </code></pre> <p>とエラーになってしまう。</p> <p>WSL ターミナルのログを見てみると、だいたい以下のようになっていて、どうやら update.code.visualstudio.com から VS Code Server の更新版のファイルをダウンロードするのに失敗しているように見える。</p> <pre><code class="text">Starting VS Code Server inside WSL (default distro) Extension version: 0.39.5, Windows build: 17763. Multi distro support: disabled. WSL path support: enabled Probing if server is already installed: C:\WINDOWS\System32\wsl.exe -e sh -c "[ -d ~/.vscode-server/bin/3db7e09f3b61f915d03bbfa58e258d6eee843f35 ] && echo found || echo missing" No server install found on WSL, downloading server on client side: C:\Users\user\AppData\Local\Temp\vscode-remote-wsl\3db7e09f3b61f915d03bbfa58e258d6eee843f35\vscode-server-linux-x64.tar.gz Unable to detect if server is already installed: Error: connect ECONNREFUSED 104.42.78.153:443 Launching C:\WINDOWS\System32\wsl.exe sh -c '"$VSCODE_WSL_EXT_LOCATION/scripts/wslServer.sh" 3db7e09f3b61f915d03bbfa58e258d6eee843f35 stable .vscode-server 0 --disable-telemetry' in c:\Users\user\.vscode\extensions\ms-vscode-remote.remote-wsl-0.39.5 WSL version: 4.4.0-17763-Microsoft Updating server... Updating VS Code Server to version 3db7e09f3b61f915d03bbfa58e258d6eee843f35 Removing previous installation... Downloading: Failed --2019-09-11 20:50:12-- https://update.code.visualstudio.com/commit:3db7e09f3b61f915d03bbfa58e258d6eee843f35/server-linux-x64/stable Resolving update.code.visualstudio.com (update.code.visualstudio.com)... 104.42.78.153 Connecting to update.code.visualstudio.com (update.code.visualstudio.com)|104.42.78.153|:443... failed: Connection refused. ERROR: Failed to download https://update.code.visualstudio.com/commit:3db7e09f3b61f915d03bbfa58e258d6eee843f35/server-linux-x64/stable to ~/.vscode-server/bin/3db7e09f3b61f915d03bbfa58e258d6eee843f35-xxxxxxxxxx.tar.gz VS Code Server for WSL closed unexpectedly. For help with startup problems, go to [https://code.visualstudio.com/docs/remote/troubleshooting#_wsl-tips](https://code.visualstudio.com/docs/remote/troubleshooting#_wsl-tips) </code></pre> <p>どう解決したものか。</p> <hr /> <h2 id="そもそも wget でダウンロードができる状態なのか"><a href="#%E3%81%9D%E3%82%82%E3%81%9D%E3%82%82+wget+%E3%81%A7%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E3%81%8C%E3%81%A7%E3%81%8D%E3%82%8B%E7%8A%B6%E6%85%8B%E3%81%AA%E3%81%AE%E3%81%8B">そもそも wget でダウンロードができる状態なのか</a></h2> <p>拡張機能の GitHub プロジェクト上の Issue によると、内部的には wget でファイルをダウンロードしているらしい。<br /> <a target="_blank" rel="nofollow noopener" href="https://github.com/microsoft/vscode-remote-release/issues/78">https://github.com/microsoft/vscode-remote-release/issues/78</a><br /> <a target="_blank" rel="nofollow noopener" href="https://github.com/microsoft/vscode-remote-release/issues/79">https://github.com/microsoft/vscode-remote-release/issues/79</a></p> <p><code>.bashrc</code> で http_proxy, HTTP_PROXY, https_proxy, HTTPS_PROXY 全ての環境変数にプロキシの URL を設定しているので、 wget に対してプロキシの情報は渡っているはずなのだが。。。</p> <p>とりあえず WSL を起動して、 書き込み権限がある適当なディレクトリで、エラーになっているファイルのダウンロードを <span style="font-family:monospace;word-break:break-word;">wget <a target="_blank" rel="nofollow noopener" href="https://update.code.visualstudio.com/commit:3db7e09f3b61f915d03bbfa58e258d6eee843f35/server-linux-x64/stable" rel="noopener" target="_blank">https://update.code.visualstudio.com/commit:3db7e09f3b61f915d03bbfa58e258d6eee843f35/server-linux-x64/stable</a></span> で試してみて、 成功するか試してみよう。</p> <p>私の場合、 以下のような初歩的なミスでダウンロードに失敗していた。</p> <ul> <li>HTTP_PROXY と HTTPS_PROXY の大文字の環境変数にしか設定しておらず、 wget がプロキシを認識してくれなかった。<br /> curl とかはどっちでもイケるから、気づくのに時間がかかった。</li> <li>何故か <code>~/.wget-hsts</code> のパーミッションが 666 に書き換わっていて、 wget のセキュリティエラーでダウンロードに失敗している事があった。</li> <li>カレントディレクトリが <code>/mnt/c/</code> になっていて、ダウンロードしたファイルの書き込めなかった。</li> </ul> <hr /> <h2 id="それでもダウンロードに失敗する"><a href="#%E3%81%9D%E3%82%8C%E3%81%A7%E3%82%82%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E3%81%AB%E5%A4%B1%E6%95%97%E3%81%99%E3%82%8B">それでもダウンロードに失敗する</a></h2> <p>以下の記事によると、 Windows 側から WSL Remote の VS Code Server を起動するとき、 .bash_profile や .bashrc, .profile などを読んでくれないらしい。<br /> <a target="_blank" rel="nofollow noopener" href="https://github.com/microsoft/vscode-remote-release/issues/432">https://github.com/microsoft/vscode-remote-release/issues/432</a><br /> このため、環境変数でプロキシを設定しても反映されないようだ。</p> <p>以下のどちらかを行うと、この問題を回避できる。</p> <ul> <li><a target="_blank" rel="nofollow noopener" href="https://github.com/microsoft/vscode-remote-release/issues/79#issuecomment-503989625">#79#issuecomment-503989625</a> のコメントのように、 <code>~/.wgetrc</code> にプロキシの設定を書く。 <ul> <li>http_proxy と https_proxy だけ設定すればよいはず。 check_certificate = off をむやみに設定するのはセキュリティ上良くない。</li> </ul></li> <li>いったんすべての VS Code を終了させ、 WSL のコンソール上で <code>code</code> と実行し、 Windows の VS Code を起動する。 <ul> <li>このとき、 WSL 側に Linux 版の VS Code がインストールされていると、そちらが起動してしまうのでダメ。</li> </ul></li> </ul> <p>正直、どちらが良いかは一長一短だ。</p> <p><code>.bashrc</code> や <code>.wgetrc</code> などあちこちにプロキシの設定を書くと管理が大変だし、<br /> VS Code Server が更新されるたびに WSL 側から VS Code を実行するのは手間だ。</p> <p>幸い、 <a target="_blank" rel="nofollow noopener" href="https://github.com/microsoft/vscode-remote-release/issues/79#issuecomment-504368316">#79#issuecomment-504368316</a> によると、 今後のバージョンでは VS Code Server のダウンロードを Windows 側で行うように更新する予定のようだ。<br /> それまでの間は逐一 WSL 側から VS Code を実行する方法で回避するのでも良いかもしれない。</p> <p>しかし、少なくとも現時点のバージョンである VS Code 1.38.0 + Remote - WSL 0.39.5 の組み合わせでは、そうなっていない。</p> advanceboy tag:crieit.net,2005:PublicArticle/15364 2019-08-30T17:38:11+09:00 2019-09-11T10:16:48+09:00 https://crieit.net/posts/hadolint-Dockerfile-VSCode-CentOS hadolintでDockerfileの書き方を叱ってもらう(VSCode, CentOS) <p>最近の開発環境はとても親切になっていて、コードの補完とか、良くないコードの指摘とか、もはや君が書いてくれたらいいんじゃない?と言いたくなるくらいいろんな機能が充実してきている。</p> <p>順調に飼いならされているぼくは、いろんなツールに叱ってもらいながらコードを書くのが当たり前になっていて、そうすると、叱ってくれない箇所があるとむしろ不安になってしまう。</p> <p>そんなわけで不安になるものの一つがDockerのファイルで、dockerfileとかは<a target="_blank" rel="nofollow noopener" href="https://docs.docker.com/develop/develop-images/dockerfile_best-practices/">ベストプラクティス</a>があるんだから、それに沿って書き方チェックしてくれたらいいのになーと思っていた。</p> <p>そしたら、そういうのがあることを教えてもらった。</p> <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">雑に書いたdockerfileやdocker-compose.ymlを添削してくれるサービスがほしい</p>— ナガモト@Glideエンジニア (@ngmt83) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/ngmt83/status/1165944603867877376?ref_src=twsrc%5Etfw">August 26, 2019</a></blockquote> <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">lint?もしかしてと思ったらありました!<a target="_blank" rel="nofollow noopener" href="https://t.co/oQqFRTYtI4">https://t.co/oQqFRTYtI4</a></p>— ナガモト@Glideエンジニア (@ngmt83) <a target="_blank" rel="nofollow noopener" href="https://twitter.com/ngmt83/status/1165952421136220160?ref_src=twsrc%5Etfw">August 26, 2019</a></blockquote> <p>これは使ってみるしかない。すでに何人もの人が試していて日本語の記述もいっぱいあるので、ここではぼくの普段使っている環境 VSCode + CentOS での手順をメモ。</p> <p><a href="https://crieit.now.sh/upload_images/7f75bcaa94abb7a0778c2c80d92e41ce5d68dfa4e2903.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/7f75bcaa94abb7a0778c2c80d92e41ce5d68dfa4e2903.png?mw=700" alt="68747470733a2f2f6861646f6c696e742e6769746875622e696f2f6861646f6c696e742f696d672f6361745f636f6e7461696e65722e706e67.png" /></a></p> <h1 id="hadolintのインストール"><a href="#hadolint%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">hadolintのインストール</a></h1> <p><a target="_blank" rel="nofollow noopener" href="https://github.com/hadolint/hadolint">公式サイト</a>によると、</p> <blockquote> <p>You can download prebuilt binaries for OSX, Windows and Linux from the latest release page.</p> </blockquote> <p>ということなので、<a target="_blank" rel="nofollow noopener" href="https://github.com/hadolint/hadolint/releases">リリースページ</a>からダウンロードしてきたファイルをそのまま実行するのがいいらしい。</p> <p>apt-getで入れないと不安になっちゃうけど、まあ新しいツールはそんなもんよね</p> <pre><code>[ ~]$ cd /usr/local/bin/ [ /usr/local/bin]$ sudo curl -L -O https://github.com/hadolint/hadolint/releases/download/v1.17.1/hadolint-Linux-x86_64 [sudo] daisuke のパスワード: % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 611 0 611 0 0 1615 0 --:--:-- --:--:-- --:--:-- 1616 100 3216k 100 3216k 0 0 598k 0 0:00:05 0:00:05 --:--:-- 678k [ /usr/local/bin]$ sudo chmod +x hadolint-Linux-x86_64 </code></pre> <p>試しに実行してみる</p> <pre><code>[ /usr/local/bin]$ hadolint-Linux-x86_64 ~/develop/dengen_map/docker/front/Dockerfile /home/daisuke/develop/dengen_map/docker/front/Dockerfile:3 DL3008 Pin versions in apt get install. Instead of `apt-get install <package>` use `apt-get install <package>=<version>` /home/daisuke/develop/dengen_map/docker/front/Dockerfile:3 DL3015 Avoid additional packages by specifying `--no-install-recommends` </code></pre> <p>叱ってもらえる!</p> <h1 id="VSCodeから実行"><a href="#VSCode%E3%81%8B%E3%82%89%E5%AE%9F%E8%A1%8C">VSCodeから実行</a></h1> <p>VSCodeには、<a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=exiasr.hadolint">hadolint</a> というプラグインが用意されている。これをインストールして、設定画面からhadolintのパスを設定する</p> <p><a href="https://crieit.now.sh/upload_images/9d08c6d37e5274805ec35413f543d5ed5d68de8e5775d.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/9d08c6d37e5274805ec35413f543d5ed5d68de8e5775d.png?mw=700" alt="image.png" /></a></p> <p>そうすると、つぎからDockerfileを編集したときに、こんなふうに叱ってもらえるようになる!幸せ!もっと叱って!</p> <p><a href="https://crieit.now.sh/upload_images/9d08c6d37e5274805ec35413f543d5ed5d68df284ceda.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/9d08c6d37e5274805ec35413f543d5ed5d68df284ceda.png?mw=700" alt="image.png" /></a></p> <p>いまのところ、docker-compose.ymlまでは見てくれないらしい。構文チェックだけでもやってくれるツールがほしいなあ。</p> daisuke furukawa tag:crieit.net,2005:PublicArticle/15109 2019-06-15T11:16:12+09:00 2019-09-23T12:27:38+09:00 https://crieit.net/posts/VSCode VSCodeメモ書き <p>バージョンアップするたびに機能増えるのはいいんですがちょっとこれどうすんのっていうのをメモ</p> <p>ボードにしたほうがよかった気がする。</p> <h2 id="各バージョンのリリースノート"><a href="#%E5%90%84%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AE%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88">各バージョンのリリースノート</a></h2> <p><a target="_blank" rel="nofollow noopener" href="https://code.visualstudio.com/updates/v1_35#_improved-surfacing-of-shell-selector-on-windows">v1.35</a><br /> <a target="_blank" rel="nofollow noopener" href="https://code.visualstudio.com/updates/v1_38#_integrated-terminal">v1.38</a></p> <h3 id="1.35"><a href="#1.35">1.35</a></h3> <h4 id="shell 切り替え"><a href="#shell+%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88">shell 切り替え</a></h4> <p>windows10環境で1.35.1だとpowershell(integrate console)がデフォルトで今までと同じくコマンドプロンプトにならないのか?って思ってたら、cfg書き直さなくてもターミナルのドロップダウンリストで選択できるようになった。</p> <p>ターミナルの横にドロップダウンリストが表示されているので</p> <p><a href="https://crieit.now.sh/upload_images/00d6f6b8552e58836dee425a95316acb5d0451c919524.PNG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/00d6f6b8552e58836dee425a95316acb5d0451c919524.PNG?mw=700" alt="規定のシェルの選択" /></a></p> <p>選択を選ぶと使えるシェルが選択できる。WSL環境のbashまで選択肢に入ってる。<br /> 次回以降は、ここで選んだものがデフォルトになる。cmdを選ぶと次回以降もcmd</p> <p><a href="https://crieit.now.sh/upload_images/34e3e6486dd66b41579f580919e49e8e5d0452cbc35c4.PNG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/34e3e6486dd66b41579f580919e49e8e5d0452cbc35c4.PNG?mw=700" alt="選択可能なシェルが表示される" /></a></p> <p>msのpowershell機能拡張(ms-vscode.powershell)を入れてるとPowershellは右下にpsengineのバージョンが表示される。</p> <p><a href="https://crieit.now.sh/upload_images/e256e0915f479ff24ae6a0c1a6455e4a5d0454605ae61.PNG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/e256e0915f479ff24ae6a0c1a6455e4a5d0454605ae61.PNG?mw=700" alt="PowerShellのバージョン" /></a></p> <h4 id="WSL側のファイルを編集する"><a href="#WSL%E5%81%B4%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E7%B7%A8%E9%9B%86%E3%81%99%E3%82%8B">WSL側のファイルを編集する</a></h4> <p><a target="_blank" rel="nofollow noopener" href="https://code.visualstudio.com/docs/remote/wsl">WSLを使ったリモート開発</a>の手順を実行するだけで、WSL側の環境を手軽に使えるようになって、非常に便利</p> <p>Windows側のVSCodeに<a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack">RemoteDevelopment機能拡張</a>をインストールする</p> <p>WSL側で</p> <pre><code>code . </code></pre> <p>といれるとWindows側のCodeが起動して必要なファイルを自動でダウンロードして接続してくれる。<br /> ワークスペースが存在する場合は、</p> <pre><code>code ./[ワークスペースファイル.code-workspace] </code></pre> <p>で、ワークスペースを反映した状況で起動する</p> <h3 id="1.38"><a href="#1.38">1.38</a></h3> <h4 id="統合されたターミナル"><a href="#%E7%B5%B1%E5%90%88%E3%81%95%E3%82%8C%E3%81%9F%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB">統合されたターミナル</a></h4> <p>teminal.integrated.cwd を使った際の動作を改善した。</p> <p>次のようにcwd変数を使うように設定した場合</p> <pre><code>"terminal.integrated.cwd": "${fileDirname}" </code></pre> <p>変数が参照できなかった場合は、エラーを出す代わりにターミナルにエラーを表示して、ワークスペースのディレクトリに移動する</p> <h4 id="自動処理用シェルセッティング"><a href="#%E8%87%AA%E5%8B%95%E5%87%A6%E7%90%86%E7%94%A8%E3%82%B7%E3%82%A7%E3%83%AB%E3%82%BB%E3%83%83%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0">自動処理用シェルセッティング</a></h4> <p>統合ターミナルで、シェルのセッティングが追加されていて、<br /> シェルの指定が可能になった。(例えばタスクなど)<br /> 特に便利なのは、tmuxのような自動処理の際に利用できないシェルを利用している場合。<br /> In addition to setting the shell for the Integrated Terminal, you can now specify a shell for automation (such as Tasks). This is particularly useful if you use tmux as your shell since that doesn't work with all automation.</p> <pre><code>"terminal.integrated.shell.osx": "/Users/user/bin/tmux_script" "terminal.integrated.automationShell.osx": "bash", </code></pre> sato_c tag:crieit.net,2005:PublicArticle/15075 2019-06-08T10:30:51+09:00 2019-06-08T16:56:35+09:00 https://crieit.net/posts/VSCode-Remote-Development-Docker-PHP VSCodeのRemote DevelopmentでDocker内のPHPでデバッグしてみた <p>VSCodeのStable版でRemote Developmentのプレビュー版が使えるようになったので先日Node.jsで試してみましたが、PHPのXdebugによるデバッグも試してみました。</p> <p>Remote Developmentの拡張機能のインストールは下記の記事と同じです。</p> <p><a href="https://crieit.net/posts/VSCode-Remote-Development-Docker-Node">VSCodeのRemote DevelopmentでDocker内のNodeでデバッグしてみた</a></p> <h2 id="サンプルのプロジェクトをclone"><a href="#%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92clone">サンプルのプロジェクトをclone</a></h2> <p>PHPにもサンプルのプロジェクトがありますので、そちらをcloneしてきます。</p> <pre><code class="bash">git clone https://github.com/microsoft/vscode-remote-try-php.git </code></pre> <h2 id="プロジェクトを開く"><a href="#%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E9%96%8B%E3%81%8F">プロジェクトを開く</a></h2> <p>cloneしてきたフォルダを開いたら、下記のボタンをクリックして<code>Remote-Containers: Open Folder in Container...</code>を選択します。フォルダを指定するとDockerイメージがビルドされ、コンテナの中でVSCodeが開き直され準備完了です。</p> <p><a href="https://crieit.now.sh/upload_images/28e24fe765e2a0dbb6e3e89900d3918e5cf91706ae5be.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/28e24fe765e2a0dbb6e3e89900d3918e5cf91706ae5be.png?mw=700" alt="" /></a></p> <h2 id="デバッグする"><a href="#%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E3%81%99%E3%82%8B">デバッグする</a></h2> <p>基本的な準備はできたのでデバッグしてみます。下記のように、適当な箇所にブレークポイントを設置します。</p> <p><a href="https://crieit.now.sh/upload_images/4ecfb0ac2503416ad07f4c7d9620ef8d5cfb0c4807a61.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/4ecfb0ac2503416ad07f4c7d9620ef8d5cfb0c4807a61.png?mw=700" alt="" /></a></p> <p>デバッグをスタートするためF5を押すか、下記のようにデバッグメニューの実行ボタンをクリックします。</p> <p><a href="https://crieit.now.sh/upload_images/f3db7426d5d8684f8112eb66c62da5885cf91773d62fa.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/f3db7426d5d8684f8112eb66c62da5885cf91773d62fa.png?mw=700" alt="" /></a></p> <p>問題なければ下記のように停止し、変数の中身を見ることができます。</p> <p><a href="https://crieit.now.sh/upload_images/36e18a1d895be4a3b29aef373ded02a85cfb0d08565d8.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/36e18a1d895be4a3b29aef373ded02a85cfb0d08565d8.png?mw=700" alt="" /></a></p> <h2 id="ブラウザアクセスでデバッグする"><a href="#%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%A7%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E3%81%99%E3%82%8B">ブラウザアクセスでデバッグする</a></h2> <p>上記の方法だと、コマンドラインでの実行としてのデバッグになりますので、ブラウザでアクセスしてもブレークポイントで停止できません。そのため、サーバーとしての動作でも止められるように<code>.vscode/launch.json</code>のconfigurationsに下記のような設定を追加します。</p> <pre><code class="json"> { "name": "Listen for XDebug", "type": "php", "request": "launch", "port": 9000 }, </code></pre> <p>次にデバッグメニューでその設定を選択して起動します。するとXdebugのListenがスタートします。</p> <p><a href="https://crieit.now.sh/upload_images/64713afd46590527e2d2ed510d190e425cfb0df87ec71.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/64713afd46590527e2d2ed510d190e425cfb0df87ec71.png?mw=700" alt="" /></a></p> <p>次に、プログラムをサーバー起動させます。これでブラウザからアクセスできるようになります。</p> <pre><code class="bash">php -S localhost:8000 </code></pre> <p>これで<code>http://localhost:8000</code>にブラウザアクセスすると先程の同様にブレークポイントで止まります。</p> <h2 id="まとめ"><a href="#%E3%81%BE%E3%81%A8%E3%82%81">まとめ</a></h2> <p>通常の開発にはあまり使わないかもしれませんが、フレームワークの中の処理を追いたいとか、APIやテストの開発時には便利そうですね。また他の言語も試してみたいと思います。</p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/15071 2019-06-06T22:53:45+09:00 2019-06-08T10:32:43+09:00 https://crieit.net/posts/VSCode-Remote-Development-Docker-Node VSCodeのRemote DevelopmentでDocker内のNodeでデバッグしてみた <p>VSCodeのStable版でRemote Developmentのプレビュー版が使えるようになったので試してみました。とりあえずDockerコンテナ内のNode.jsでブレークポイントを貼ってデバッグしてステップ実行したりするところを試しました。</p> <p>基本的には下記のマニュアルどおりにやればいいのですがちょこちょこつまづいたり冗長な部分もあるのでとりあえず最小で試すところを書いてみます。</p> <p><a target="_blank" rel="nofollow noopener" href="https://code.visualstudio.com/docs/remote/remote-overview">Visual Studio Code Remote Development</a></p> <h2 id="Remote Developmentをインストール"><a href="#Remote+Development%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">Remote Developmentをインストール</a></h2> <p>まずはRemove Developmentの拡張機能をインストールします。これをインストールするとSSH、コンテナ、WSL用の拡張機能も同時にインストールされます。</p> <p><a href="https://crieit.now.sh/upload_images/9b96c3d4b9b876ae035fecd6b003731b5cf914c359db5.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/9b96c3d4b9b876ae035fecd6b003731b5cf914c359db5.png?mw=700" alt="" /></a></p> <h2 id="サンプルのプロジェクトをclone"><a href="#%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92clone">サンプルのプロジェクトをclone</a></h2> <p>下記がコンテナの場合のマニュアルです。</p> <p><a target="_blank" rel="nofollow noopener" href="https://code.visualstudio.com/docs/remote/containers">Developing inside a Container using Visual Studio Code Remote Development</a></p> <p>ここに書かれているように、試す用のGitHubリポジトリがいくつか用意されています。Visual Studio Code用の設定や、Remote Development用の設定も含まれているため簡単に試すことができます。今回はこれを使って試していきます。Node.js用のvscode-remote-try-nodeというリポジトリをcloneしてきます。</p> <p>ただ、2019/6/6現在Dockerイメージ作成でエラーになって失敗するようですので、.devcontainer/Dockerfileのベースイメージだけ<code>node:10</code>から下記に変更して最新のものがインストールされるようにしておきます。</p> <pre><code class="dockerfile">FROM node </code></pre> <h2 id="プロジェクトを開く"><a href="#%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E9%96%8B%E3%81%8F">プロジェクトを開く</a></h2> <p>まずは普通にcloneしてきたフォルダをVSCodeで開きます。次に、下記画像のようにステータスバーの一番左にRemote Development用のメニューが追加されていますのでここで<code>Remote-Containers: Open Folder in Container...</code>を選択すると初回のみDockerイメージがビルドされ、そのイメージのコンテナ内としてVSCodeが開きなおされます。(ちなみにdocker-compose.ymlがあればそちらからの起動を選択したりもできるみたいです)</p> <p><a href="https://crieit.now.sh/upload_images/28e24fe765e2a0dbb6e3e89900d3918e5cf91706ae5be.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/28e24fe765e2a0dbb6e3e89900d3918e5cf91706ae5be.png?mw=700" alt="" /></a></p> <h2 id="デバッグしてみる"><a href="#%E3%83%87%E3%83%90%E3%83%83%E3%82%B0%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B">デバッグしてみる</a></h2> <p>準備はできたのでデバッグしてみます。まずはブラウザでページを開いた時の処理あたりにブレークポイントを貼ってみます。</p> <p><a href="https://crieit.now.sh/upload_images/1700b33c7d0bb188b2307401f8a462de5cf9188417da4.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/1700b33c7d0bb188b2307401f8a462de5cf9188417da4.png?mw=700" alt="" /></a></p> <p>左のメニューから虫のようなボタンを押してデバッグメニューを開きます。</p> <p><a href="https://crieit.now.sh/upload_images/f3db7426d5d8684f8112eb66c62da5885cf91773d62fa.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/f3db7426d5d8684f8112eb66c62da5885cf91773d62fa.png?mw=700" alt="" /></a></p> <p>緑色の実行ボタンを押すとデバッグが始まります。開始したら <code>http://localhost:3000</code> にアクセスするとページ表示が始まり、先程のブレークポイントのところで停止します。ここでresやreqの変数などを見ることができたりします。おわったらVSCodeの上部に停止ボタンが出ているので止めます。</p> <p><a href="https://crieit.now.sh/upload_images/36e18a1d895be4a3b29aef373ded02a85cf91944490c1.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/36e18a1d895be4a3b29aef373ded02a85cf91944490c1.png?mw=700" alt="" /></a></p> <p>これで最小の確認は完了です。</p> <h2 id="TypeScriptの場合"><a href="#TypeScript%E3%81%AE%E5%A0%B4%E5%90%88">TypeScriptの場合</a></h2> <p>おまけとしてTypeScriptの場合ですが、tsconfig.jsonで<code>sourceMap</code>を<code>true</code>にします。あとはts-nodeで実行するか、もしくはビルド用のタスクを作ってlaunch.jsonの<code>preLaunchTask</code>にそのタスクを指定すれば同様に試すことができます。</p> <h2 id="まとめ"><a href="#%E3%81%BE%E3%81%A8%E3%82%81">まとめ</a></h2> <p>この様な感じでDockerコンテナ内のシステムを使って動かすことができました。やはりデバッグやテスト実行が思いつく限り一番有用な気がしますが、他にも色々と便利な使い方はできそうな気がします。</p> <p>個人的にはいろんなコンテナの処理を実行したいな、という場合もある気がするので中で起動するのではなくて一部だけ中で実行する、のような連携がもっと簡単にできればいいなぁと思いましたが、とりあえずPreview版ですので今後にも色々期待したいと思います。</p> <p>PHPも下記で試してみました。<br /> <a href="https://crieit.net/posts/VSCode-Remote-Development-Docker-PHP">VSCodeのRemote DevelopmentでDocker内のPHPでデバッグしてみた</a></p> だら@Crieit開発者 tag:crieit.net,2005:PublicArticle/14963 2019-05-04T10:08:55+09:00 2019-05-22T23:50:34+09:00 https://crieit.net/posts/VSCode-Remote-Development VSCodeのRemote Development機能が革命的な話。 <h1 id="背景"><a href="#%E8%83%8C%E6%99%AF">背景</a></h1> <p>今月始めにMicrosoftから<a target="_blank" rel="nofollow noopener" href="https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack">Remote Development Extension Pack</a>. というのが発表された。簡単に言うと、VSCodeでコードを書くOSとプラグインが実行されるOSを別にすることが出来る。</p> <p>よくあるパターンで、「MacでNokogiriがビルドできません」「WindowsでESLintを実行するにはどうしたら良いですか」みたいな質問がある。<br /> 最終的にサービスを公開するときにはどうせLinux使うのに、開発するときしか使わない別のOSで同じものを動かす苦労って無駄だよなあ、と思っていた。</p> <p>じゃあ最初からLinuxで開発すればいいかというと、最近の高度化したWeb開発はIDEの支援なしに実行することが困難で、RubyだったらRuboCop、JavaScriptだったらPrettierやESLintで文法チェックしてもらわないと人類にはついていけない。これらを動かすためには開発環境をIDEと同じOSで動かす必要があって、そのためには上記の質問に悩まないといけない...というのが実情だった。</p> <p>そういう悩みを解決するのが、VSCodeのRemoteDevelopmentだ。VSCodeはWindowsやMacで動かしつつ、SSHやDocker、WSLなどで動作するLinuxマシン上にあるソースコードを編集し、linuxマシン上でプラグインを動かすことが出来る。つまり、Windows/MacにはVSCodeさえあればよくて、ほかは全部Linux上で実行することが出来る。もはやNokogiriのビルドに悩む必要がなくなる!</p> <h1 id="やってみた"><a href="#%E3%82%84%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F">やってみた</a></h1> <h2 id="インストール"><a href="#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB">インストール</a></h2> <p>やり方はここで解説されている。早速やってみた。<br /> <a target="_blank" rel="nofollow noopener" href="https://code.visualstudio.com/blogs/2019/05/02/remote-development#_get-started">Remote Development with VS Code</a></p> <p>Remote Developmentはまだベータ版の機能なので、実行するためには<a target="_blank" rel="nofollow noopener" href="https://code.visualstudio.com/insiders/">Insiders</a> というβ版を使う必要がある。これは既存のVSCodeとは別のアプリケーションとして動作して、既存の環境を壊さないのでむしろ便利かも。</p> <p>インストールが完了したら、ExtenstionsからRemoteDevelopmentをインストールする。ブラウザで開いてInstallクリックすると既存のVSCodeの方に入っちゃうので注意。サイドバーのExtenstionから「Remote Development」と入力してインストールする</p> <p><a href="https://crieit.now.sh/upload_images/5bdf259a1402024ea7590a7f95f091515cccddd781e92.PNG" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/5bdf259a1402024ea7590a7f95f091515cccddd781e92.PNG?mw=700" alt="1.PNG" /></a></p> <h2 id="マシンに接続"><a href="#%E3%83%9E%E3%82%B7%E3%83%B3%E3%81%AB%E6%8E%A5%E7%B6%9A">マシンに接続</a></h2> <p>Linuxマシンに接続する方法はいろいろあるけど、今回は既存のマシンにlinux接続することにした。Ctrl+Chift+P でコマンドパレットから"Remote-SSH: Connect to Host"を実行</p> <p><a href="https://crieit.now.sh/upload_images/1ae06851b325290cab9249e6900b8e8e5cccde482aa12.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/1ae06851b325290cab9249e6900b8e8e5cccde482aa12.png?mw=700" alt="2.png" /></a></p> <p>WindowsのPuttyで接続を管理していると、その設定ファイルの内容をインポートしてくれる(!)</p> <p><a href="https://crieit.now.sh/upload_images/7c2667c852e03503e787726fe43924c65cccdf0d45388.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/7c2667c852e03503e787726fe43924c65cccdf0d45388.png?mw=700" alt="3.png" /></a></p> <p>ハマりポイント:Linux側にtmuxが入っているとうまく接続できないので、bash_profile編集して外して上げる必要がある。</p> <p>接続完了。Open Fileを選ぶと、linuxマシン上のファイルを編集することになっている。</p> <p><a href="https://crieit.now.sh/upload_images/9d08c6d37e5274805ec35413f543d5ed5cccdfda19cfc.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/9d08c6d37e5274805ec35413f543d5ed5cccdfda19cfc.png?mw=700" alt="image.png" /></a></p> <h2 id="プラグインを使う"><a href="#%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3%E3%82%92%E4%BD%BF%E3%81%86">プラグインを使う</a></h2> <p>ここまではSSH経由でファイルマウントしたりする機能を使えばできないこともなかったので、今までできなかったことに挑戦。</p> <p>ExtenstionからESLintとPrettierをインストール。WindowsのVSCodeからインストールしても、linuxで実行したほうが良い機能はlinux側にインストールされる。なにそれすごい...</p> <p><a href="https://crieit.now.sh/upload_images/4e666ef886c9e8a06373e868ad228d085ccce14790f36.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/4e666ef886c9e8a06373e868ad228d085ccce14790f36.png?mw=700" alt="4.png" /></a></p> <p>設定から、Format on Saveを有効に。<br /> <a href="https://crieit.now.sh/upload_images/b5b83f209eb98e6a00fc0c5745bdf34d5ccce183e9338.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/b5b83f209eb98e6a00fc0c5745bdf34d5ccce183e9338.png?mw=700" alt="5.png" /></a></p> <p>で、こういう許されないJavaScriptを書いて保存すると...</p> <p><a href="https://crieit.now.sh/upload_images/c0035fccebd3ac3cdaed1f1c228289135ccce1a3ce7b6.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/c0035fccebd3ac3cdaed1f1c228289135ccce1a3ce7b6.png?mw=700" alt="6.png" /></a></p> <p>勝手に整形される。ぼくらが夢見ていた機能!WindowsにはVSCodeしかインストールしていないのにlinuxの機能が使える!</p> <p><a href="https://crieit.now.sh/upload_images/30536cf6fc3a926b7c934376b4f0150f5ccce1d46db64.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/30536cf6fc3a926b7c934376b4f0150f5ccce1d46db64.png?mw=700" alt="7.png" /></a></p> <p>Prettierだけだと、ぶっちゃけlinux上で上書きされたファイルを読んでるだけのような気もするので、あとでESLintも試してみよう</p> <h1 id="まとめ"><a href="#%E3%81%BE%E3%81%A8%E3%82%81">まとめ</a></h1> <p>ということで、WindowsにインストールしたVSCodeからlinuxの開発ツールの支援を受けつつコードを書くことが出来るようになった。</p> <p><a href="https://crieit.net/posts/Windows">さいきんMacイケてないと思わない?</a> とかっこいいこと言ってSurfaceに移ったのだけど、パワー不足で仮想マシンを使うのが辛かったり、hyper-Vでlinux動かしてもESLintが使えなかったりして、やっぱりMacに戻らないと駄目かなあ、もうちょっとなんとか...と思っているところだった。</p> <p>RemoteDevelopmentがあれば、ネットの向こうで実行しているlinux VPSに対してVSCodeの各種支援機能を実現することが出来る。こうなってしまえば、もはやWindowsであれが動かないこれが動かないと悩む必要がなくなる。</p> <p>数年前まで、開発マシンをインターネットの向こうに置くと、通信環境が確保できないと開発できないのがネックだったんだけど、最近どこでも無線LAN使えるし、テザリングもあるので、SSHでつなぐ程度の回線で良ければほぼ人権レベルに確保できるようになってきた。</p> <p>この先5Gのモバイル接続が普及すれば、インターネット上で開発する動きはますます加速することが予想される。そういう予想のもとに提供されたのがAmazonの<a target="_blank" rel="nofollow noopener" href="https://aws.amazon.com/jp/cloud9/">Cloud9</a>だったんだけど、MicrosoftはVSCodeという強力なツールに機能を追加することで同様の機能をよりスマートに実現してみせた。</p> <p>GitHubの買収、TypeScript、VSCodeの提供と、あっという間にWEB開発の主流を抑えつつあるMicrosoftが、唯一ネックだったIDEの実行環境を埋めるツールを出してきて、最近のMicrosoftはイケてるよね。</p> daisuke furukawa