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
950
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
App Router 悲喜交々
quramy
7
540
上手に付き合うコンポーネントテスト
quramy
4
1.9k
Patched fetch did not work
quramy
6
600
GraphQL あるいは React における自律的なデータ取得について
quramy
18
4.9k
Next.js App Router
quramy
15
3.4k
Fragment Composition of GraphQL
quramy
16
3.6k
reg-viz VRT tools
quramy
4
1.3k
NoInfer
quramy
0
250
Precondition with schema directives
quramy
0
1.5k
Other Decks in Programming
See All in Programming
sappoRo.R #12 初心者セッション
kosugitti
0
250
Pulsar2 を雰囲気で使ってみよう
anoken
0
240
ファインディLT_ポケモン対戦の定量的分析
fufufukakaka
0
710
dbt Pythonモデルで実現するSnowflake活用術
trsnium
0
150
Amazon ECS とマイクロサービスから考えるシステム構成
hiyanger
2
560
Pythonでもちょっとリッチな見た目のアプリを設計してみる
ueponx
1
560
密集、ドキュメントのコロケーション with AWS Lambda
satoshi256kbyte
0
190
時計仕掛けのCompose
mkeeda
1
300
Kubernetes History Inspector(KHI)を触ってみた
bells17
0
230
ARA Ansible for the teams
kksat
0
150
CDK開発におけるコーディング規約の運用
yamanashi_ren01
2
110
Bedrock Agentsレスポンス解析によるAgentのOps
licux
3
840
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1368
200k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
27
1.9k
Gamification - CAS2011
davidbonilla
80
5.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Documentation Writing (for coders)
carmenintech
67
4.6k
Faster Mobile Websites
deanohume
306
31k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
Mobile First: as difficult as doing things right
swwweet
223
9.3k
Agile that works and the tools we love
rasmusluckow
328
21k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.2k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
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