Visual Studio Code、VB.NET用にIntelliSenceを
機能追加しようとした際の残滓・敗戦記録 '20.12.12

概要:
1.MS VS入れるとうちのPCじゃ重たいなぁ…
2.VScode でも入れてみるか!
3.ありゃ、VBだとIntelliSence動かないや。これちょっとスクリプト
 いじくれば動きそうじゃね?
 GitHubにもソースあるし何とかなるだろw
4./extenstion以下てきとーにコピーすりゃ少しは動くじゃんw
 やったろw
5.あれ・・・typeScriptとWebPackねーと話になんねぇわ
6.しゃーねー、LinuxでVSCodeフルビルトやろっと
7.node.jsとかビルトツールが入らねぇ・・・
8.node.jsソースからコンパイルするかぁ。←今ココ


VsCodeについて:
Visual Studio Code はマイクロソフトが支援するオープンソースの
テキストエディタです。
うちのatomPCでも軽快に動くぐらい、非常に性能が良いです。

最大の長所は、Visual Studioと同じく、IntelliSence相当の
「自動コード補完」「メンバ表示」機能がつかえる事(VBは無理)。
難点としては Eclipse並に、操作UIが難解かつ癖が強く、
設定変更などがやや複雑。MITライセンスとかちょっと意味分からない。
ブラウザ、Chrome相当の機能でブラウザhttpのクライアントサーバー
機能を使っているらしく、一体何やってるのかよく分からない。
いわゆる「ブラウザで動くブラウザアプリ」ではありますが、
見た目的にはきちんとテキストエディタとして動きます。
(でも時々OSごとぷっつり飛ぶ事があり、少し不安定ですがw)


ま、結論としては「これはつかえる!」だったんですが。
本資料は「Visual Studio Code(略してVScode) にVB.NET拡張機能を入れて、
そこそこ動くようにしてみよう!」とした際の
トラブル、問題点などの記録公開が目的です。
いわゆるネットガバレージ、チラシの裏の独り言です。

結果的には失敗みたいです。


VSCodeはさらに以下が使えるようです。
・VSS2008以降に見られるような#region〜#End region範囲での
 コードのオープン、クローズ
 すごい便利。でもオープンクローズの設定自体は保存されないみたい?
 VisualStudioをなんで使うのかと言えば、半分はコレが理由でしょう。
・デバッガアタッチメント、デバッキングインターフェイス
 (使ってないから分からない)
・GitHub、レポジトリサーバーと通信する機能(使ってない)
・各種拡張機能(よく分からん)
・未保存のテキスト内容をアプリ終了〜起動時に再現するっぽい
 (毎回保存しなくても未保存のテキスト動くらしい。よく知らんけどなんか)
・結構便利なのが、「最後に終了した際に開いていたファイルを
 そのまま再度表示する機能」。
 8つとかファイルを開いた状態で終了したとします。再度起動すると
 同じファイルを8つぐらい起動。
・プロジェクトフォルダ管理機能みたいのも一応あるようです。
 フツーのビルトツールだと、ここのプロジェクトの設定周りが
 かなり面倒だったりするのですが、setting.jsonという一個のファイルに
 記述されるみたいで結構楽。

・その逆に、なぜかOfficeみたいな「保存」アイコンがないので少し不便。
 Ctrl+Sで保存は出来るので面倒過ぎるという事はない。
 その他コピペ。
 Ctrl + SpaceでIntelliSence起動。でも起動出来る場所とか
 ちょっと制限があるらしい。
・ファイルのドラッグ&ドロップ操作は覚えれば便利だけどちょっと戸惑う。
 複数ファイルを開いたときに表示されるファイル名のとこのタブに
 ドロップすれば開くようです。
 ふつーのテキストエディタはエディタ上のどこにファイルをドロップしても開くけど、
 ここのタブの位置「だけ」ってのがちょっと珍しいかも。
 エディタのファイル内容の方にドロップすると外部のファイルを
 まるまる指定位置に挿入される形式。leafpadと同じ動き。
 自分がじーちゃんになったっていう老けを感じますねぇ・・・。
・ソースプレビュー・縮小イメージ画面が右側に出る。うちのテレビ、
 右側がぶっつり切れるから操作しにくいんだよね…w
 ソースのマウススクロールは少しだけ使いにくいかも。
・設定ファイルが、DocumentAndSettings/User....のフォルダにも
 勝手に出来る。これちょっと面倒
・設定ファイルが手書き。
・GUIからの設定が結構めんどくさい。どこでどーゆー設定するのか
 よく分からん。
・どの機能が自分の使う言語で使えて、どれがつかえるのか、さっぱり分からん。
・ドキュメント系がネット上ではあまり整備されてない印象。
・最初初めて起動した時、ぜんぜん使い方分からんw
 「この機能とこの機能だけは使おう」と決めて、それ以外の機能は一切
 使わない、という「ボーダー引き」が重要なようです。

 そうしないとオレみたく「VBでIntelliSense実装しちゃおう!」みたいな
 ミイラ取り状態になると思われます。多機能であれこれ改造しやすい点が、
 違う意味ですごい足引っ張られるw
 パソコン初心者な俺さんにはちょっと難しいって事のようですw

JavaやPyphon、jsonファイルなどWeb系ファイルを編集する際には非常に
便利なようです。batファイルにも対応してる。よくこんな面倒くさい
機能丁寧に作るなぁ。

GitHubのソースコードを解析した辺りでは、以下が分かっています。
・VSCodeは、Monaco-Editorというツールのラッピングらしい。
 VSCode自体にはコード補完、IntelliSenseに関するコアコードはない。
  (Widgetの中にそれっぽいのはあるけど、項目の制御はやってない。)
 Monaco-Editor相当に拡張機能側からオブジェクトを渡す事で制御している。
・Monaco-EditorもGitHubでソースコードが公開されています。
 でもMonaco-Editorのソースはいくら調べても全然何やってるか、どうやって
 動いてるのか全然分からんw
 こっちのほーは複数プログラミング言語のIntelliSence/ハイライト機能に
 特化してるようです。
 一方のVSCode側は、プロジェクト管理やGitHubといった拡張機能、
 ワークベンチ機能などに比較的重きを置かれてるようです。

 気になるのが、VSCodeもMonacoも、どういう訳か携帯
 スマートフォン対応をぶった切ってる点。これちょっと気になりますよね。
 どう考えてもスマフォで外出先でチコチコプログラム出来た方が
 幸せそうなのに?
・TypeScript、Java/JavaScript、Pythonなど一部言語では
 綺麗に動く。
 InteliSense、コード補完機能が完全に動く。
 一方、VBに関してはコード補完は動かず、過去にソースに入力された
 文字列が補完機能としてIntelliSenseの入力候補一覧に表示される。
 このため、コメント文に記入した文字列さえ入力候補として
 列挙してしまう。また、as,ASなど、ほとんど同じ誤字、過去に
 誤って入力した文字列も候補として重複して出してしまう。
 逆に言えば、Must Overrideなど「一度でもそのソース内で入力した」
 キーワードは候補として出てくれる。でもスコープ、場所等一切無視して
 とにかくなんでも列挙してくる。
 (とはいっても最初の何文字かさえ思い出せれば絞り込んでくれるけど。
  入力履歴はプロジェクト共通に設定出来るようです。)
・XXX.jsonというnpmだかのパッケージ管理ファイルがソース全体の肝らしい。
 GNU makeと同じく、package.jsonにビルトに関する情報のほとんどが
 格納されている。
 jsonファイルは、HTMLタグ形式をXMLとして発展させた後、
 「タグ名を前後に書くの面倒くさくね?」という発想で生まれたデータ格納形式のようです?
 基本はXMLと同じだけど、記述方式が結構違う。
 でもデータ記述言語としてより汎用的に使えるようになってるらしいです。
 A : B、左が名前(プロパティの名前)、右がその値(プロパティの値)
 で、XMLと大きく違うトコはBの方が[A,B,C...]とか、複数列挙出来るように
 拡張されている点。

 余談で全然関係ねー話になりますが、ぼくの推論によると、そもそも
 C言語というのはAIをつくろうとして設計された言語のようです。
 一つ一つのメモリに名前を割り振り、そのメモリぶらさがり形式でプログラム、
 AIを記述しようとした名残りらしい。htmlもAI製作を目指して作られた
 らしいけど、実際にはキーワードベースに、一つのキーワードに複数の
 属性をぶらさげる事に特化したAI指向言語のようですよね。名残り的には。
 今じゃテキストの拡張フォーマット扱いですけど…。





なんでこの人VB.NETにこだわるの?と思う方もいらっしゃるんじゃ
無いかと思いますが…。
Windows10だと、デフォルトでVB.NETコンパイラが入っています。
開発環境が、一切インストール不要でいきなり使えるのは非常に
強力だったりするのです。
大昔のPC88,98のN88-BASICがROMに内蔵されてましたが、
この「OSプリインストール」の開発環境は非常に強力です。
さらにいえば、.NetFramework2.0〜3.5ぐらいであれば、
どうにかすれば未だにWindowsXPですら動くプログラムが作れます。

よくあるパターンが、「開発環境をインストールしようと思ったが
最近のOSでは対応してないので動かない」。
VC6.0辺りも未だに現役で使えそうなツールっぽいですが、
マルチスレッドマルチコアなどが弱い点もありますけど…。
開発環境をどこのプラットフォームに固定するか、というのは
非常に悩ましい問題です。
あと、頭が固くなっちゃって、もうC#を覚えられないからw
c#は新しい言語ですから、恐らくAPI呼び出し周りがかなり
弱くなってるんじゃないかと…。
VC.NETはC/CLIの影響でポインタとかグチャグチャになってるし、
mfc使わんとダメだろうし…。
.Netframeworkのランタイムライブラリがかなり強力で、
プログラム記述のコストがかなりカット出来る、という点もあります。
いまさら二分探索でえらい時間かけたくないじゃないですかw

Excel/VBAもかなり強力な開発環境ですが、大容量データを
扱うとなると、なにぶん実行スピードが弱い。
でも内部的にはどうやら、.netframeworkを呼び出す形式臭いですね
あれ・・・w
C言語が一番手堅いですけど、Windowsでデフォで入ってない。
LinuxだとOS維持するのにすげーコストかかるし。
シェアウェアのWindowsだとインスコ>設定周りがLinuxに比べて
はるかに足回りが良い、扱い安い点では、Windows全然負けてませんよね。
金かけらんない時はLinux、極力Windowsで出来る事はWindowsにするw

それにCだとコード量すげー増えるし…VBも言語としちゃ
古いからコード量かなり多いけどw
でもこの「コード量の多さ」はVSCodeなどでなんとか回避出来る。

でも、Windows標準搭載のVBコンパイラにも結構致命的な問題点が
あったりします。
開発中のテストビルトの際に、分割ビルト、部分ビルトの実行時間が
けっこう長い事。
A.......Z.vb という複数ファイルを一括ビルトする分には
それほどコンパイル時間は気になりません。
でも、B.vb「だけ」を修正してコンパイルして実行しようとすると。
ぜんぶフルビルトするか、かなり厳密にクラス空間を分けないと
いけなくなる、らしい。
Visual Studio VB.Netで「デバッグビルト」を使う文には、
全部のclassはプロジェクトでグローバルになるのですが・・・
お手製プロジェクトファイルだと、階層化しないといけないんですよね。
4階層とかにして、その「階層ごと」全部ビルトしないといけない。
MSBuildの使い方が悪いんだと思いますが・・・w
これは俺の使い方が極端に悪いだけなんでしょうけど…。

Target:Compile_full  > ....>Compile_NaseComponent 
みたいに複数階層化してあげれば、階層単位であれば、部分コンパイル・リンクが出来る
っぽいのですが。MSBuild自体、かなり鬼門で動きがめちゃくちゃ怪しい
感じがするので、結構こわいw

でもやっぱ無料で使える分には便利ですもんねw
文法もまぁ大昔のVBの文法や作法はそこそこ使えるし。
クイックソートや文字置換、文字のparserが短文で記述出来る
というのはありがたい話ですよねw
10進数>16進数記述なんか、Cだと毎回必要に応じて関数
書く必要ありますけど、VB、frameworkだと知ってれば一瞬だしぃw
とはいえ、VB.Netは16進数記述が弱い。
Cの構造体定数文をコピペで流用って訳にもいかない。API呼び出しも
かなりメンドクサイ上にトラブルが凄い多い。
.netframeworkも毎年すごい拡張してるし…。

でもお金かかんないし便利だから、実行環境と開発環境とで
動きが違うという事態を避けられる、というのが大きいのかもw





VSCodeをインストールすると分かると思いますが、
VSCodeのインスコ先をてきとーにエクスプローラーで漁ってみると
extensions「フォルダ」(ディレクトリじゃない。Windows版しか触ってないし)
が見つかります。この中には言語ごとの拡張コードがあります。

この拡張機能は、以下にだいたい分かれます(俺の知る限り)。
 ・言語ごとの固有実装
   ・キーワード、文字列を表示する際に色付けする「Syntaxes」機能
   ・定型文を入力候補として表示する「Snippet」(スニペット)機能
   つまり、「言語」だけだとIntelliSenceは動かないみたいです。
 ・XXX-language-features
   上記をさらに補完・強化する機能。
   IntelliSenceの制御、ソース内のオブジェクト一覧ウィンドウ
   の制御。
 ・その他、VSCodeに独自の追加ウィンドウなどを追加するその他拡張


VSCodeの特徴的な外装に近い部分はWebサーバー、JavaScriptで記述されてるらすぃです。
本体exeはCかC++(よく調べてない)、周辺の言語実装は
JavaScript。
で、ただのJavaScriptだけじゃなくて、TypeScriptという
Javaの上位ラッパー言語と、WebPackというので実装されてるらしいです。


今回はVB.Net用に、変数やクラス名などを表示したりキーワードを
IntelliSenceに覚えさせるのが目的。
ここまで使いやすいし、実装させるのも恐らく簡単だろう!という見込みで
やってたのですが、これが結構トンデモな間違い…。

そう大きな間違いだった、らしいのですw
(ふつーすっげー簡単に実装できると思うじゃん。ここまで構造がカンタンならw)

まず、最初の困難がこれ。
「IntelliSenseのコアコードがどこか全く分からない」w
GitHubのVSCodeのソースをあらかた見まくったのですが、どこが
InteliSenceのコア実装部分なのか、さっぱり分かりません。
コードをいっくら眺めても、どこがどういう動きなのか、まず全然分かりませんw

分かっている範囲で、InteliSenseのコード実装について言うと…。
まず、VSCodeは、起動時に、各種設定ファイル(setting.jsonなど)
に応じて、JavaScriptのファイルを生成するらしいです。
keymap.json(だったかな…忘れた)から、ワークベンチの外景、
ワークベンチの本体部分を...workbench...out/Main.jsだかに出力。
その際にkeymap.jsonだかを呼び出してそこからIntelliSense相当の
コード、ToggleSuguestion、やらを呼び出すjavaScriptコードを
吐くらしい。

で、その前後、起動時に、XXX-language-features以下のdstまたはout以下の
phpMain.js、Activate関数を呼び出す。
このActivate関数の中で、CompleteItemProviderというクラスを
上位側に渡して設定するのですが(このナンチャラProviderというのは非常にたくさんの
種類がある。Monaco-Editorの方に全部送られる)。

Syntaxes、Snipetもどっからどういう風に呼び出してるのか
結構調べたけどよく分からなかった。build update-grammars.jsから
Update関数という関数を呼び出してるらしいんだけど、
これまたなんだかよく分からない。どうやって呼び出しているんだろう?

VBのIntelliSenseが動かない理由はどうも、入力テキストファイルの、
Syntaxesの構文解析がうまくいっていないのでは?という気配が非常に濃厚
に見えるのですが、これがまたどうやら違う、らしい。
Extension/vb/Syntaxes以下のなんちゃらとかいうjsonファイル内は
VBのソースの構文解析をやっています。
Const....vb.asp.netとか色んなデータ型、parseして読み取った型を返していて、
一見してコレがコケているだけのように見えるんですけど、
これがどうも違う、らしい。
ハイライトによる色分けは上手く動いているので、構文解析や各キーワードの認識自体は
完全に上手く動作しています。なのに、IntelliSenseは
動かない。これ不思議でしょ???ちょっと直せば綺麗に動きそうな感じ
するでしょ???
でも、ここらはあくまでもキーワードの色塗りにしか、どうも使われて
いない、らしい。Monacoの方を調べれば分かりそうな感じがするのですが…
これがまた何が書いてあるのか、さっぱり分からないw

今回のVB.Net IntelliSense実装には extensions の php-language-featruesの
dstあたりのphpMain.js、Activate関数あたりを
書き直して、CompleteItemProviderクラスあたりを丁寧に
VB用に書いてあれげれば、どうも動きそう、という事なのですがw


で、問題はextensions/php-language-fieaturesの中にある、
このphpMain.jsとかのスクリプト。
これ自体はTypeScriptとWepPackというツールを経由して、
XXX.tsという「TypeScriptソースファイル」からtsc(TypeScriptコンパイラ)
とWebPackというツールの二つより生成されます。

TypeScriptは、いわゆる新手のプリプロフェッサみたいなもんで、
XXX.tsというTypeScriptソースファイルから、JavaScript、XXX.js
というファイルを吐く。ラッパーコンパイラみたいな感じ。
文法もほとんどJavaScriptと同じみたいですが、変数の型強制や
他のJavaScriptコードの参照を出来るようにしてあるらしいです。
(Import、Requireというキーワードで他のtypeScript「ファイル」を
 参照できて、モジュールを参照出来る。)

WebPackは、ホームページ上の複数に散らばったcssファイルやら
JavaScirptファイルやらを、一つのファイルに簡単にまとめて出力する
ツールのようです。
http通信、ブラウザ通信で、何度もファイルを呼び出してダウンロードすよりは、
一つのファイルにまとめて一度に転送した方が早いよね!
という発想のようです。


VBnet-language-featuresを実装するためには、
このTypeScript、WebPackをどうしても使えるようにする必要が
出て来た訳です。
php-language-Features/dest/phpMain.jsを直接編集しても
多分同じ事が出来ますが、とにかく関数量が桁違いに多い。
こんなんいっくら弄くり回しても時間がかかってしょうがないです。
オマケにJavaScriptはほとんど触った事ないし、文法もよく
わかんないし…。
改行コードをなんで抜いてあるのか、改行があってもなくても
動くのか、すらわからないwJavaScript勉強したことないもんw
挙句に vscode を require しているので、どうしても
vsCodeそのものを自力ビルト出来るようにする必要があるw

VSCode公式側で、拡張機能を作るためのツールもあります。
けど、これ使い方よく分からんし、「VB IntelliSense」を作るには
なんか馴染みが悪そうな感じがしますし。

ちなみにTypeScriptを動かすだけだったら、MicroSoftも
VisualStudioのツールチェインの一環として用意してるらしいです。
いつの間にこんな新言語作ったんだ、MicroSoft。
でもうちの貧弱PCじゃもちろん重くて動く訳ないので、当然
入れられません。動作確認環境とビルト環境別にしないと駄目だろうし…。
アマゾンの商品名検索だってかっくかっくでまともに動かないのに、
天下のVisualStudioなんかまともに動く訳ないしw
プログラマーのプロ開発用PC向けのソフトなんだし、32bitOSで
動く訳ないし…。


実験結果として、ですけど・・・。
VSCode以下のextension/php-language-featuresを
vb-language-featuresフォルダとしてコピー、配置。
直下のjsonファイル内のphpという記述をてきとーにvbに変えつつ、
dest/phpMain.js内の php という文字列をvbに置き換えると
あら不思議、一応VB機能拡張としてそれなりに動きました。
これは嬉しい前触れw
ただし、IntelliSenseの入力候補の内容はphpの内容のままです。
あとはphpMain.jsの中身をいじくり回せばVB.net実装が
出来そうな気配ですw




じゃVSCodeをコンパイルしてみよう!
・・・これがぜんっっっぜんうまくいきません。

ビルトには
https://msyksphinz.hatenablog.com/entry/2016/03/26/060000
を参考にやってみたのですが…。

ビルト環境として、以下がいるらしい。
Yarn、Python、nodejs、npm。他にもlibx11-devとか?

VSCodeは、ビルトの際に yarn というツールを
を使ってコンパイル・ビルドします。
他にも必要そうなツールを勝手に落として来て勝手に用意して
勝手にビルトしてくれるようです。
基本的にはローカルユーザーのディレクトリ内、さらにその下の
「プロジェクト」にツールバイナリを配置するらしく、
PC本体にダメージが出ない風にしたらしいです。
(node.jsもnpm -gにでもしないと /usr/local/bin/とかに配置しない。
nパッケージはどうやら例外的にroot権限エリアのフォルダに入れるらしい)

git 
cd vscode
yarn
で、本来なら一発で動くべきなんですけど。
yarnが、nodejsのバージョン、10以上を要求してきます。

apt-get update
apt install nodejs npm
ここまではすんなり手に入る。
でもyarnかけても動かないw
Segmentent faultで落ちるw

Linux側のビルト環境はKnoppix8.6のHDD install版w
最初はOSが壊れるんじゃねー?やめといた方がいいよな…
と思ったけど、ちょっと無理して入れてみたのですが。
仮想OSを一つ用意してソコにnodejs等を入れようと思ったんですが、
40GBとかのハードディスク容量が確保できず断念。
うちの経済状況的にやたらと無駄金使うのは論外だしぃ、
ハードディスクの容量状況は逼迫しているらしいですw
古いデータ消せばいいんだけど、だいたい何かしらどっかは使うもんですから・・・
Windows2000、vistaなんかもはや使う訳もないのになぜか残してありますw
(Vistaはどういう訳かライセンス違反と出て動かない。
 買ってきてすぐにXPに入れ替えた影響で、そのXPのライセンスとして
 MS側が認識したらしく。いやいや、別のPCのXPライセンスをそのまま
 持ってきただけなのに・・・しくしくしく)


うちのKnoppix環境だと何が悪いんだか、さっぱりnpmが
インストール出来ないw
ver 6.1ぐらいがいるんだけど、apt 経由だと5.8しか
入らないw
nodeはapt installだと10.XX.XXが入るけど、
npmが入ってくれない。

VSCodeのビルト要件としてnpmは必須ではないようなのですが、
どういう訳かいるっぽい。
n パッケージを入れたけど、typeScriptやらWebPackやらを
npm install -G で入れてみたけど・・・。
なんか途中で nodejsのバージョンが8.Xで固定されてしまうw
n パッケージが /usr/local/bin/node にどっかから
ファイルを無理やり置いたようです?
とかとか、何どうやってもパニック訳わかめで何がなんだかさっぱり分かりませんw

curlやらnvmやらいろいろありますが、どうも入りそうな気配がない。
npm update npm -G
で入れようとすると、npm5.8が取り扱えるnodeのバージョンが6以上9以下までしか
対応してないらしく、バージョンアップ出来ない。

typescriptだかnだかwebpackだかをインストールした際(npm install)に、
nodeのバージョンが8に固定されてしまうw
どう頑張っても8から変更出来ないw


平たく言えば、「nodejsとnpmがうまく入らない」のでした。
apt コマンドだとnpmのバージョンが新しいのが、どう
頑張っても入らない。

さらに、npmだかどっかでディストリビューター情報を検索している
らしく、DebianじゃなくKnoppixだと動かない箇所もある。
Webpack-cliインストールの時に確か引っかかったような…。


でw
node.jsの公式HPのソースを落としてmake>make installを
かけてみたのですが・・・。

これまたコンパイルが異常に長いw
6時間とかかかります。っていうか寝落ち。
挙句にうちの32bit Knoppix環境だと。SSE3サポートの無い
CPUだったため(athlon64x2世代)、途中でzlib関係のソースが
コンパイルエラーで止まるw5時間近くコンパイル実行して、
その上コンパイルエラーで止まるのかよwwwww


で、仕方なくただいまKnoppix 64bitカーネルで起動、
nodejsを tar ,confifure, make をかけている訳ですけど・・・。
これ本当にコンパイル通るんかいな・・・不安過ぎw


node.jsの最新ソースのコンパイルは、古いパソコンでは完全に鬼門の
ようですw
うちのCPU、SSE3サポートしてないよぅw

node.jsコンパイルなげぇ。4時間やってもできねぇのかよ、中止w

nvm経由でインストールを試みる…。
https://qiita.com/ffggss/items/94f1c4c5d311db2ec71a
にしたがってnvmを入れてみる。

sudo apt-get install build-essential libssl-dev
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
.bashrcがないとエラーが出るので
touch .bashrc
で作って再度実行。

https://qiita.com/n0bisuke/items/66e32609c7d941dc8c94
にしたがって、nvm 自体を新しくする。
$ cd ~/.nvm
$ git pull origin master
$ source ~/.nvm/nvm.sh
.nvm$ nvm --version
0.37.2


Sudo apt-get install build-essential

$ nvm install --lts --latest-npm
$ nvm alias default lts/*

cd vscode
./scripts/npm.sh install --arch=x64

Package xkbfile was not found in the pkg-config search path.
Perhaps you should add the directory containing `xkbfile.pc'

と出てエラーで止まる。ぐぐったら英語のサイトでどうたら書いてあるw
sudo apt install libxkbfile-dev
をかけてみるwそいで以下をもう一度実行してみるw
./scripts/npm.sh install --arch=x64
今度は <bits/c++config.h> がないと言われる。ぐぐって英語のサイトに
到着。
sudo apt-get install gcc-multilib g++-multilib
をやってみるwライブラリが32,64bit環境とで違うらしい。
ビルトツールは多分32bit系列だろうし…。
今まで散々メイクその他やってて、なんでいまさら???
32,64bitで同じじゃないのかこれ???

・・・ここに来てgyp?だかの32,64bitOS問題に衝突w
ライブラリ関係、ぜんぶ64bitの物を使わないとダメなようです。
ディストリビューターとして、64bitのフルパッケージ型Linuxを
そもそも使って無かったのが、大きな間違いだったようです。
あとパソコンのCPUが古すぎて動かない。

無駄な努力・・・はぁ・・・なんて厳しいんだ世の中(>_<!)

試しにextensions/php-language-features以下で
yarn実行してみましたが、何も生成されませんでした。
これなんでだろ。原因分からん…。
yarn runを起動したら色々メニューが出る。
試しに「コンパイル」を実行してみるw
でもやっぱし動かないし・・・。なんかのjsファイルでエラー出てるけど
なんだろこれ?w
フツーextensionsの中だけでもmake風にビルト出来そうな
感じはあるのになぁ…なんで動かないんだろう。

フツーだとLinuxは古いCPUに合わせて作り込むけど…。
最新のパッケージやソフトは意外とそうでもないという事が判明w
そりゃそうだわ、サーバー用のnode.jsなんてプログラムその他、
古いPCで動くように作る訳がないわな。
こりゃ新しいPCなりハードディスクなり買わんと無理だわ・・・
時間すっげーかかるしw






せっかく大量に時間かけたので、資料残しとかないと
勿体ないと思って記録上げておきましたw
が…どーーせ誰も見ないかなw
二の鉄を踏まないよう、皆様ご用心を…。

誰か、VB.NET向けのIntelliSense作ってちょwと言いたいとこだけど
どうせ金はらえねーし。いい加減パソコン買えよオレって所ですがw
(atomがあまりに優秀過ぎて手放せないこの有様w)

もどる

ほーむ