import { Parser as AcornParser } from "acorn"
import { simple as walk } from "acorn-walk"
export class Parser {
parseController(code: string, filename: string) {
...
}
}
Code Actions to
guide the user in the right
direction
Slide 127
Slide 127 text
No content
Slide 128
Slide 128 text
After a few months
Slide 129
Slide 129 text
Available Now
Stimulus LSP
Slide 130
Slide 130 text
I asked the community for
feedback
Slide 131
Slide 131 text
And got a lot of awesome
feedback and ideas
Slide 132
Slide 132 text
Some of the naive approaches
we used were starting to fall
short
Slide 133
Slide 133 text
Especially the way we were parsing
the JavaScript with Acorn
Slide 134
Slide 134 text
We hard-coded
app/javascript/controllers/
Slide 135
Slide 135 text
The controller identifiers
weren
β
t always accurate
Slide 136
Slide 136 text
Inferring the identifier from the
filename is not always enough
Slide 137
Slide 137 text
import { application } from "./application"
import ClipboardController from "./clipboard_controller.js"
application.register("clipboard", ClipboardController)
import FileUploadController from "./file_upload_controller.js"
application.register("file-upload", FileUploadController)
f
app/javascript/controllers/index.js
Slide 138
Slide 138 text
import { application } from "./application"
import ClipboardController from "./clipboard_controller.js"
application.register("clipboard", ClipboardController)
import FileUploadController from "./file_upload_controller.js"
application.register("file-upload", FileUploadController)
f
app/javascript/controllers/index.js
Slide 139
Slide 139 text
import { application } from "controllers/application"
import { eagerLoadControllersFrom } from "@hotwired/stimulus-loading"
eagerLoadControllersFrom("controllers", application)
Slide 140
Slide 140 text
No content
Slide 141
Slide 141 text
The Language Server works
Slide 142
Slide 142 text
But produced a lot of false
positives and inaccurate results
Let us know if you have any ideas,
we are just getting started
Slide 220
Slide 220 text
Recap
Slide 221
Slide 221 text
Developer Experience and
Developer Ergonomics matter.
Slide 222
Slide 222 text
This is the kind of tooling we
are currently missing.
Slide 223
Slide 223 text
There is so much potential!
Slide 224
Slide 224 text
I am super excited for the
future of these tools.
Slide 225
Slide 225 text
I believe that tools like this are part of
the reason why a language/framework
keeps it
β
s relevancy
Slide 226
Slide 226 text
Or put differently
Slide 227
Slide 227 text
These tools are necessary and
expected from a modern
language and framework
Slide 228
Slide 228 text
X
Slide 229
Slide 229 text
I want to help build the tools
needed for the future of Rails
applications.
Slide 230
Slide 230 text
WEEKLY
Slide 231
Slide 231 text
Hotwire Weekly
β’ A new Hotwire-focused newsletter
β’ Delivered Weekly
β’ Explore what
β
s happening in the world of Hotwire
β’ Progress and updates while we are building out hotwire.io
β’ Been running since Oct 2023
β’ Over 1350+ subscribers and growing
WEEKLY
Slide 232
Slide 232 text
t
@Hotwire_Weekly
M
@[email protected]
Hotwire Weekly
Sign up on hotwireweekly.com
Slide 233
Slide 233 text
A more unified Hotwire
ecosystem
Slide 234
Slide 234 text
A more productive Hotwire
ecosystem
Slide 235
Slide 235 text
Feedback Ideas Thoughts
Improvements
Come
fi
nd me!
Slide 236
Slide 236 text
Stickers
Slide 237
Slide 237 text
Thank you π
t
@marcoroth_
M
@[email protected]
g
marcoroth.dev
g
@marcoroth