Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Change your source with AST
Search
Yosuke Kurami
June 26, 2018
Programming
3
970
Change your source with AST
For Roppongi.js#4
Yosuke Kurami
June 26, 2018
Tweet
Share
More Decks by Yosuke Kurami
See All by Yosuke Kurami
TypeScript LSP の今までとこれから
quramy
1
610
フロントエンドテストの育て方
quramy
12
3.4k
App Router 悲喜交々
quramy
8
620
上手に付き合うコンポーネントテスト
quramy
6
2.1k
Patched fetch did not work
quramy
6
690
GraphQL あるいは React における自律的なデータ取得について
quramy
18
5.3k
Next.js App Router
quramy
15
3.6k
Fragment Composition of GraphQL
quramy
16
4k
reg-viz VRT tools
quramy
4
1.4k
Other Decks in Programming
See All in Programming
ふつうの技術スタックでアート作品を作ってみる
akira888
1
1.2k
チームのテスト力を総合的に鍛えて品質、スピード、レジリエンスを共立させる/Testing approach that improves quality, speed, and resilience
goyoki
5
1.1k
High-Level Programming Languages in AI Era -Human Thought and Mind-
hayat01sh1da
PRO
0
850
#kanrk08 / 公開版 PicoRubyとマイコンでの自作トレーニング計測装置を用いたワークアウトの理想と現実
bash0c7
1
920
#QiitaBash MCPのセキュリティ
ryosukedtomita
1
1.5k
なんとなくわかった気になるブロックテーマ入門/contents.nagoya 2025 6.28
chiilog
1
280
「App Intent」よくわからんけどすごい!
rinngo0302
1
100
はじめてのWeb API体験 ー 飲食店検索アプリを作ろうー
akinko_0915
0
140
AI コーディングエージェントの時代へ:JetBrains が描く開発の未来
masaruhr
1
200
テスト駆動Kaggle
isax1015
1
520
明示と暗黙 ー PHPとGoの インターフェイスの違いを知る
shimabox
2
610
Android 16KBページサイズ対応をはじめからていねいに
mine2424
0
310
Featured
See All Featured
Unsuck your backbone
ammeep
671
58k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Git: the NoSQL Database
bkeepers
PRO
430
65k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Bash Introduction
62gerente
613
210k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
YesSQL, Process and Tooling at Scale
rocio
173
14k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
47
9.6k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Transcript
"45Λͬͨ ιʔείʔυฤूͷ 3PQQPOHJKT CZ!2VSBNZ
গ͠લʹCFUUFSOBNFͱ͍ ͏$-*πʔϧΛͭ͘Γ·ͨ͠ https://github.com/Quramy/better-name
ͳͥ࡞ͬͨͷ͔
ͳͥ࡞ͬͨͷ͔ w ಛʹࣄͰ Ұॻ͍ͨKTϑΝΠϧͷॴΛɺޙ͔Βม͑ ͨ͘ͳΔ͜ͱ͕݁ߏ͋Δ w FYQPSU͢ΔGVODUJPODMBTT໊ࡶʹਖ਼نදݱͰ͍͍͚Ͳɺ JNQPSUͷ૬ରύεΛ͢ͷׂͱμϧ͍ w *%&ʹΑΒͣɺڞ௨ͷಈ࡞͕อূ͞Εͯ΄͍͠
WJNNFSͳͷͰɺྡͷಉ྅͕εΠεΠ8FC4UPSNͱ͔ͬ ͯΔͷݟΔͱෲཱͭ
Ͱ͖ͨͷ w NWίϚϯυͱେମҰॹɻGSPN'JMFͷύε͕UP'JMFҠΔ ͚ͩ better-name [options] <fromFile> <toFile> w JNQPSUจͷ߹ੑΛҠಈલޙͰ୲อͯ͘͠ΕΔ
͜Μͳ͔Μ͡
JNQPSUͱ"45 w -5λΠτϧʹ͋Δ௨Γɺ͜ͷπʔϧ+BWB4DSJQUͷ "45 நߏจ Λղੳ͍ͯ͠Δ w JNQPSUFYQPSUจ๏ͷ੍͕ݫ͍͠ ཪΛฦ͢ͱΊͬͪΌղੳ͍͢͠
͙͢࡞Εͦ͏ w ࣮ϓϥϯ KTKTYͷέʔε w CBCZMPOͰιʔείʔυΛ"45QBSTF w !CBCFMUSBWFSTFͰ"45 ͷJNQPSUจ
Λม w !CBCFMHFOFSBUFͰ"45͔ΒιʔείʔυΛੜ
ͪͳ54ͷ߹ w ࣮ϓϥϯ UTUTYͷέʔε w UTDSFBUF4PVSDF'JMFͰιʔείʔυΛ"45QBSTF w UTUSBOTGPSN $VTUPN5SBOTGPSNFSͰ"45
ͷ JNQPSUจ Λม w UTDSFBUF1SJOUFSͰ"45͔ΒιʔείʔυΛੜ
Ұ௨Γ࣮ͯ͠ؾͮ͘
͋ΕɺJNQPSUจ͔͠มͯ͠ͳ͍ͷʹɺ ࣮ߦલޙͰEJ⒎ग़ա͗͡ΌͶʜ
͓·ΘΓ͞ΜίΠπͰ͢ w ࣮ϓϥϯ KTKTYͷέʔε w CBCZMPOͰιʔείʔυΛ"45QBSTF w !CBCFMUSBWFSTFͰ"45 ͷJNQPSUจ
Λม w !CBCFMHFOFSBUFͰ"45͔ΒιʔείʔυΛੜ
ͬͪ·ͬͨ w ͦͦ "45ιʔείʔυՄٯม͡Όͳ͍ FHηϛίϩϯ Πϯσϯτ ετϦϯάϦςϥϧ FUD w
QSFUUJFS͔͚Ε͍͍ɺͱࢥ͍ͬͯͨ w ۭߦ͕আ͞Εͯ͠·͏݅Ͳ͏͠Α͏ͳ͍
Γ͠
"45ͷमਖ਼Λιʔεө͞ ͤΔʹ w !CBCFMHFOFSBUFΘͳ͍ ͏ʹͯ͠ہॴతʹ w "45Λղੳͨ͠ޙɺมߋ͍ͨ͠༰ͱରOPEFͷMPDBUJPO ͔Β5FYU$IBOHFΛ࡞Γɺιʔείʔυͷจࣈྻʹద༻͞ ͤΔͷ͕ਖ਼ղ
ʮ"45͔ΒੜʯͰͳ͘ʮ"45ͷมߋΛద༻ʯʹ͢Δ
5FYU$IBOHF w ԫ৭ͷ෦Ұมߋ͕ͳ͍ ιʔείʔυͦͷ·· w มߋ͕ෳͷ߹ɺιʔείʔυͷޙΖ͔Βద༻͢Δ import { someFn
} from "./target"; export default function main() { someFn(); } import { someFn } from “./new-target”; export default function main() { someFn(); } textChanges = [{ start: 24, end: 32, text: 'new-target' }]
·ͱΊ w !CBCFMHFOFSBUPSUT1SJOUFSΛιʔείʔυमਖ਼ͷ తͰΘͳ͍ɻཚ༻͠ͳ͍ w 5FYU$IBOHFͷύλʔϯΛ͓֮͑ͯ͘ͱɺͲ͔͜Ͱʹཱ ͔ͭʜ
5IBOLZPV