Upgrade to Pro — share decks privately, control downloads, hide ads and more …

KotlinのソースコードをASTレベルで書き換えるツールを作っている話

 KotlinのソースコードをASTレベルで書き換えるツールを作っている話

■ 発表者
Bill One Engineering Unit
加藤 耕太

■ Bill One 開発エンジニア 採用情報
https://media.sansan-engineering.com/billone-engineer

SansanTech

June 06, 2024
Tweet

More Decks by SansanTech

Other Decks in Technology

Transcript

  1. 写真が入ります 加藤 耕太(Kota Kato) Sansan株式会社 技術本部 Bill One Engineering Unit@関⻄⽀店

    Sansan株式会社所属のソフトウェアエンジニア。 インボイス管 理サービス「Bill One」のアーキテクトとして、サーバーサイド Kotlinを含む技術選定から⽴ち上げに関わり、現在に⾄るまで開 発および技術マネジメントに従事。 最近は Kotlin / TypeScript / React / Google Cloud をよく触っている。 著書:Pythonクローリング&スクレイピング データ収集・解析のための実践開発ガイド
  2. IntelliJ IDEAのStructural search and replace機能 既存の⽅法1 Structural search and replace

    | IntelliJ IDEA https://www.jetbrains.com/help/idea/structural-search-and-replace.html
  3. 他の⾔語での選択肢 - JavaParser - Home https://javaparser.org/ - facebook/jscodeshift: A JavaScript

    codemod toolkit. https://github.com/facebook/jscodeshift jscodeshiftを参考に作ってみよう (所属企業ではなく個⼈としての取り組み)
  4. ktcodeshift - Kotlinのソースコードを⼀括で書き換えるツール - 変換関数をKotlin Scriptで記述 - 複数ファイルに⼀括適⽤するためのコマンドを提供 - ktastをラップした変換⽤のAPIを提供

    > ktastはkastreeをフォークしたライブラリで、 Kotlin 1.7対応とコメントや空⽩を維持した変換を実現 > kastreeと同様にKotlin Compiler APIを使⽤ orangain/ktcodeshift: Toolkit for running codemods over multiple Kotlin files inspired by jscodeshift. https://github.com/orangain/ktcodeshift
  5. まとめ - ktcodeshiftというKotlinのASTレベルで書き換えるツールを作っている > 変換関数をKotlin Scriptで記述 > 複数ファイルに⼀括適⽤するためのコマンドを提供 > ktastをラップした変換⽤のAPIを提供

    - 開発中ですが、もし良ければ使ってみてフィードバックいただけると嬉しいで す - 他にもっと良い⽅法をご存知の⽅はぜひ教えてください
  6. Get started with Kotlin custom scripting – tutorial | Kotlin

    https://kotlinlang.org/docs/custom-script-deps-tutorial.html おまけ: プログラムからKotlin Scriptを実⾏する⽅法