kotonoha_pcg@気ままに雑記

kotonoha_pcgが気分次第で様々書き置きます.dlang関係他:http://kotonoha-pcg.hatenadiary.com

Windows版IntelliJ IDEA CommunityにD言語拡張をインストールして補完機能を使う

タイトルが長すぎた... :-(

先に

Community版の利用用途とか怪しい所があるので、実行するのは自己責任で。責任は負いません。


dlang、去年の冬なんかはVimで書いてたり、VSCode + Terminalという手を使って書いていた。が、この度Linux環境ではなくWindows環境で書く必要があって、かつcode-dの依存関係が面倒だったことを覚えていたため、「IDEAあたりなら何かあるんじゃない」と思ってググったらあった。

[Intellij Dlanguage] :https://github.com/intellij-dlanguage

これが面白くて、入れただけじゃ動かなくて(それはそう)、コード補完機能を使えるようにするまでやった手順を書きます。いろんなとこ寄り道してたり飯食ったりしてたら3時間掛かっちゃった...

前提条件

作業環境

  • Windows10 Pro x86_64
  • DMD-2.083.1
  • DUB-1.11.0
  • cmd.exe, explorer
  • IntelliJ IDEA 2018.2.5 (Community Edition)
    • Build #IC-182.4892.20, built on October 16, 2018

直接必要ではないけど、たまにコードや情報見たときに使ったもの: VSCode, Google Chrome


作業

  1. スクリプトを叩いて各種ツールを落としてくる

    https://github.com/SeijiFujita/quiita_works/blob/master/using_vscode_02/Build.bat

    システムのPathを通しておく。

    cmdが閉じるとBin, DCD, DScanner, dfmt, workspace-dの5つ(だったっけ?)のディレクトリが生成されるので、 中身をDUBで叩いていく。

  2. DUB(他)でビルドする

    1. workspace-d

      ここだけ手抜きで申し訳ないが、ディレクトリ内にあるinstall.batを叩いて終わり。DCD、DScanner、dfmtの依存関係はallで。

    2. DCD

      https://github.com/dlang-community/DCD

      README.mdの中の"DUB"ってところを使います。DCDはクライアントとサーバとで機能が分離されているのでexeを2個作ることになる。 dub build --build=release --config=client dub build --build=release --config=server

    3. DScanner

      https://github.com/dlang-community/D-Scanner

      相変わらずDUBで。と思ったら、dscがなんか無いって怒られてしまうので、上にあったREADME.md内のテストの項にbuild.batがあるので適当にそれを叩く。

      出力も変わらないし、なんも変化ないんで待つ。

    4. dfmt

      https://github.com/dlang-community/dfmt

      dub fetch --version='~master' dfmt && dub run dfmt -- -h で終わるはずなんだが、--version='~master'のところが無いって怒られるので、 dub fetch dfmt && dub run dfmt -- -h で叩く。

  3. Binディレクトリに全てをまとめる

     まぁ、正直要らないような気もしますが出来上がったexeを一括管理できた方が楽なんで、1つのディレクトリにまとめる。最初に出来上がったBinに、workspace-d以外のツールのディレクトリ/binに生成されたexeを入れていく。

  4. IntelliJ IDEA側で設定する

     Alt + F + tで設定を開き、Languages & Frameworks→D Toolsで、Dub他各種項目のPath:を、3.でまとめたBinディレクトリに設定していく。

    なお、自分の環境ではAuto Findはさっぱり動かなかった(たぶんDUBでビルドしてないのが影響してるのではと予想してるけど)ので、最初から手動でやった方が速い。

  5. 再起動

    これは文字通り。


ここまでやって、Event Logに何も出てなかったら大体オッケー。あとは適当なソースを開いてCtrl + Spaceで出てくれば終わり。

画像

f:id:kotonoha_pcg:20181224033235p:plain
補完発動例

まとめ

自分の設定が悪いだけなんだろうけど、それでも補完が動いて表示されるまでがかなり遅いなぁ、と思いながらこの記事を書いてます。まぁ、そこらへんは調整すればなんとかなるんじゃないかなぁ。なればいいなぁ。

ソースからコンパイルしたVimを削除する

備忘録。Windows番はVSがないとビルドすらできないので、ここでは取り扱いません。そもそもシステムへのインストールじゃない、というのもあります。

さて本題。Linux(ここではUbuntu)上でソースからビルドしてインストールしたVimについて、新しくgit pullしてリビルドする際に、既存のVimを削除しなければなりません。 そこで、今まで直接リンクとディレクトリを削除していたのですが、ググったらunistallなるオプションがあった。

make uninstall

以上。makeでインストールし、Makefileを用いてインストールされているならMakefileがあるディレクトリにて使えるようです。 ただ、autoconf, automakeで作成されたMakefileに限るようです。Linuxでのアンインストールあれこれ

クイックゾル使ってみた

 2日続けて記事を書くなんて何があったのか知りませんが()、暇なことは暇なのでメンテの話を書こうかと。先週、アマゾンでクイックゾルという洗浄液があることを知り、色々ググった後購入してました。

特徴とかそういうのは公式や他ブログをあされば出てくるので、感想をば(乾燥だけに)。

早い

 乾燥がめっちゃ早い。まぁ乾燥というか完全に気化する速度が速いだけなんですが、それでも早い。具体的には、チェーンクリーナーに一定量入れたのに、50s後には殆ど無くなってる、というくらい。 なので、入れてすぐ回し始めるか、いっそウェスに適量出してそのままチェーンをこする、だとか、ブラシで磨くだとかしないと辛かった。

タイミング

 「ゾル」なのでオイルを注せるんですが、タイミングが判りづらかったので、メンテして2時間後とかにやってました。使ってるのはいつものAZのマルチパーパス用の、ついでに暇だったのでフレームも軽く洗ってました。

インプレ

 インプレッションの使い方間違えてるような気がしないでもないですが、どのくらい効果あったのかを見てみるため、軽く走ってみました。回すときに軽いのはもちろん、見た目もだいぶ綺麗にはなってましたね。2,30kmくらい走ってたんですが、近日中にもうちょっと近距離を走る予定があるので、長時間走る時違いあるのか試したい。

f:id:kotonoha_pcg:20180801173318j:plain

↑ここまでは綺麗になったものの、コマ深くとかは厳しそうなので、やっぱりそこまでするにはミッシングリンク買ってきてシャカシャカチェーンかなー、と思ってます。

ただ、今まで同じAZのディグリーザー使ってた時から考えると、近くに水源とか蛇口とかが無くても洗浄ができる、というのは大きかったかなぁ。

全体的に

  1. 水場の近くである必要がなく
  2. 時間もそんなにかからず
  3. そこそこ汚れが取れた

っていう感じです。値段の割に容量あってコスパは良い印象。ゾルブの方は潤滑油入りですぐ走れるらしいので、余裕あったらこっちも買ってみようかな。

Hardstyleにハマった

Hardstyleにはまった

 もう7月も終わりだというのに何も記事書かないのも寂しさが残るので、ちょっと音楽の向き変わった話でも書こうかと。ここ数ヶ月はEarly Raveとかハッピーハードコア(!=ハッピーガバ)にハマったりしてたんですが、たしか6月の初めにTwitterで流れてきたこいつを聴いてガラッと何かが変わります。

https://www.youtube.com/watch?v=2kAyR6sOyb4

で、キックはやや重い方なんだけどメロディーがそこそこあって聴きやすいなぁーと思ったものの1ヶ月。今月の初めにこの記事にたどり着きます。

http://708.hateblo.jp/entry/2017/07/20/234451

そして読んだことも忘れて先週、いきなりつべでZombieを聴いてズブっと浸かってしまった…


Zombieが決定打だったわけでは無いんですが、708つながりといえばたしかにそう。もともとHardcoreに入ったのもHardstyleとかNu Styleとか聴いてもっと速いの無いのかな、となったのがきっかけなのも多少あるので、リリースの度ではないもののDa TweekazとかMassive New CrewとかHeadhunterzとか聴いていた、というのもあって、Tequilaに会います。

https://www.youtube.com/watch?v=koTZc4gSQgk

ジャンル的にはどのあたりなんだろ・・・。ただ、飛びぬけて陽気にしたJ-COREみたいな曲調、というところが正直な感想で、普通に書くならやっぱりNuでもRawでもない普通で陽気なHardstyleって感じか。

 もう一度戻ると、やっぱりThis is the Rawphoric.感がすごい。あとさっきのブログ記事にもあったけど、確かに熱唱したくなるかも。つまり、キックも重いしこの手によくある壮大にエモい曲じゃな~、という感じでした。


BMS

 となると当然のようにげーむでも聞いていたくなるんですよこれがwやっぱりそんなにないのかなーと思ったらBOFU2017,2016,2015と3年続いて何かしらのアーティストがいて、いやほんと楽しませてもらってます。


その他

 とはいえHardstyleばっかり聴いているかというとそうではなく、先日プレビューがつべにアップされたばかりの、Massive New Crew夏コミ新譜とかにもHADESのリミが入っていたり、春に出たMyosukeの新譜(時期的にはもうそう呼ばないのか?)にもMAD FREAKSとそのリミが入っていたりして、AC収録曲が多くなってきた感じがします。ウレシイ…
 昔はRoughsketch一択だったのが、'16後半あたりから一気にそれ以外(MNK,Myosuke,kenta-v.ez.,海外勢だったらPeacock,Sefa,Tweekacore,etc...)へ一気に世界が広がった感じで楽しいです。
 じゃぁ逆に従来まで聞いていたアーティストは?というと、例えばAngerfistが昨年出したCreed Of Chaos Angerfist - Creed Of Chaos at Discogs の中の一曲、"The Promqueen's Finest Drug"が楽しい。

https://www.youtube.com/watch?v=8nOHfUaWuMg 45sec~

今までゔおぉんゔおぉんっていうNu Styleキックが特徴的だった中でこの軽くも歯切れのよいというか、あっさりしたキック出してきたのを見て方向転換狙ってるのかなぁ、と思ったりもしたけど、最近はグッとくる曲が少ないかなぁ。特にCrossbreed出してるていうDJではない(そもそ方向性がも違うし)、Incomingから始まった俺のNu Styleは終わりかけているんだろう。

CSSのセレクタメモ

CSSセレクタメモ

�@�ŋ�Sass������Ƃɖ����ɂȂ��Ă邪�A�K����CSS����Ă������Q���o�n�߂��̂ŁA���Q���łɃ����ɂ��Ă����B

#つけるやつ(idセレクタ)

id=#main/idセレクタ。id="#なにがし"で、1ファイルにつき同名のものは一度しか定義できない。

<div id="#main"></div>
#main {
    fuga
}

.つけるやつ(classセレクタ)

class="lol">/classセレクタ。とりあえずどこでも付けられる。

<td class="lol"></td>
.lol {
    text-align: center;
}

疑似クラス

a:hover/議事クラス。例通りとしか言いようがない。ある特定の動作(例:マウスカーソルを乗っける)で効果が出る。

<a href="./../css">
a:hover {
    color: #000000;
}

子孫セレクタ

.nav li/子孫セレクタは特定の親要素に内包される子要素/子孫要素を選択する。これは例を見た方が分かりやすい。

<nav class="nav'> <!-- 親要素 -->
    <ul>          <!-- navの子要素 -->
        <li>hoge<li> <!-- navの子孫要素/ulの子要素 -->
        .
        .
        .
    </ul>
</nav>
.nav li {
    color: #000000;
}
 この場合、子孫要素のliタグに対して色指定をしている。

複数セレクタをまとめる

 今Sassで若干書き方に迷ってるものの一つ。@mixinと@includeでやろうと思ってるけど、なかなかイメージがつかめないのでcssの方で先に考えようかと。

<table>
    <tr>
        <th>hoge</th>
        <td>fuga</td>
    </tr>
</table>
th, td {
    lol
}

 とりあえずまとめるだけまとめたので、後は自然に出てきて判別できるようにするのを考えようかと思います。