変奏現実

パソコンやMMORPGのことなどを思いつくまま・・・記載されている会社名・製品名・システム名などは、各社の商標、または登録商標です。

この画面は、簡易表示です

検索

[Visual Studio Code]「フォルダを指定して検索」が動かない

JavaScriptは型が無い。とは云え、全く無視するのは辛いので。マメにJSDocなコメントを入れている。

VisualStudioCodeでは関数や変数の名前をクリックして2回(Ctl+Alt+D)すると、テンプレが書き込まれるので簡単だ。

しかし、コード中に型チェックすると typeof を羅列するより switch case で書きたい時もある。

そんな時はObject.prototype.toString()が、

[Object ${ObjectTypeName}]の様な文字列を返してくれるので、 switch case 風に処理できる。

/**
 * オブジェクトの型名を調べる
 *
 * @param {Any} obj   オブジェクト
 * @return {string}      型名
 */
const getTypeName= (obj) => {
  if (typeof (obj) === "undefined") {
    return "undefined";
  }
  var toString = Object.prototype.toString;
  // [object typeName] のハズなので、typeName部分を抽出してみる
  let typeName = toString.call(obj).match(/^\[\w+\s+(\w+)\]$/);
  return typeName[1];
}

各オブジェクトのtoStringメソッドは、一番OverWriteしまくっているメソッドなので、

ココでは確実な動作を狙って、Object.prototype. toString をCall呼び出しで参照してみた。

でも名前がgetTypeNameなのがイマイチなんでObjectTypeNameにリファクタリングしたら、

他のファイルでUndefinedになってた。

JavScriptだから仕方が無いけど。

置換機能で書き換えようとしたら・・・

(サッパリ

検索すらしない。

ググっても、それっぽい記事は無い。

試しに「検索エディタ」を開いてみた。

赤線で囲んだアイコンをクリック

するとちゃんと検索しだした。

MSCodeを再起動しても、結果は良好。

つまり、裏側でこっそり設定ファイルが出来た様だ。

※この手の自動設定の不具合は、インストーラのテスト同様に見つけにくいものだ。

昔の映画で「xx製は叩けば治る!」というセリフがあったけど、MSCodeも同じらしい。

初回ダメなら「新規xx」とかをぶったたけば、初期設定ができるかも。

しかし、今後はどうなるか予断を許さない。(と思う。




top