私はcombyが大好き!


私はコビー、https://github.com/comby-tools/comby、彼らの言葉で好きです:

"A tool for structural code search and replace that supports ~every language."


ほとんどの場合、私はいくつかのプル要求を見直しており、常に同じ考えを持っています
  • 「これは前に見えます……」
  • 「私はここでパターンを見ます……」
  • それから私は
  • プロジェクトフォルダに移動します.
  • リポジトリを更新します.
  • PRの支店に行きます.
  • は、私が欲しいものを抽出することができるgrepを理解します.
  • 私たちが知っているように、ステップ4は、多くの時間がかかるものです.combyは少しの構文を理解していて、Regexを書くとき、最も重要なことである()[]{}をバランスよく扱っています.
    例:
    ソフトウェアの相互作用の後、ビューとコンポーネントに書かれたパーミッションに関連する多くのメソッドがありました.最終的に、物事は重複して開始されますので、リファクタリング/再編成する時間でした.
    COMBYを使用して、これは基本的に(または近い)私がタイプしなければならなかったものです
    comby 'can:[~[A-Za-z0-9_]*](:[h]) {:[i]}' '' -matcher .js
    
    出力例:
    // pay attention to the `!` on the left of the code.
    
    ------ file.vue
    ++++++ file.vue
    @|-1,5 +1,3 ============================================================
     |  computed: {
    !|     canEdit() {
    !|       return this.user.permissions.contains(Permissions.X);
    !|     }
     |  }
    
    この式は、' CAN 'で固定されたすべての関数/メソッドをハイライトします(:[h]:[I]は「括弧と括弧括弧の間に何があるか」というプレースホルダです.
    結果として、私はチームに示し、私たちはこの問題に取り組むことができたときに議論した、我々はいくつかのアイデアを持っていたし、リファクタを開始します.
    これはcombyの1つのユースケースであり、チェックアウトのページと私はそれが今私のお気に入りのツールになることを願っています.