Inline breakpoints
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- clojure, javascript
Research direction
Start by tracing inline-breakpoint detection from gutter selection through source-map handling, focusing on multi-line ClojureScript forms and their generated JavaScript. Done means possible breakpoints cover the full mapped form and are presented correctly in the DevTools UI.
Written by the indexing model from the issue text.
Description
DevTools have this[1] new cool feature called "inline breakpoints".
Unfortunately it is implemented in a way which does not work well with source-mapped clojurescript-generated javascript code. I'm not sure where exactly their code fails but from brief review of the code it looks like they assume lines are fundamental code blocks for scanning for possible breakpoints. While this is true in javascript, it is not the case in clojurescript-generated javascript code. Typically one form in clojurescript code can span multiple lines and compiles into many more lines of javascript. Detection of possible breakpoints examines only first line (or first few lines) of generated javascript code which is usually not sufficient. There may be also some woes caused by source-mapping.
We should examine possibility of fixing this. I believe all low-level tools are available, we just need to scan whole raw source code generated for selected form. For example placing a breakpoint into gutter at some line, we should detect outer-most cljs form beginning on that line, properly find its end possibly many lines down from it. Then map both to raw javascript locations to get proper range for possible breakpoints scan. Then we must make sure that detected possible breakpoints are properly presented in the UI.
- Dominant language
- Clojure
- Stars
- 775
- Forks
- 29
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from binaryage/dirac
-
Difficulty 3/5 1-2 days Newbie friendliness 38/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 30/100
-
Difficulty 4/5 3-5 days Newbie friendliness 25/100
-
Difficulty 3/5 1-2 days Newbie friendliness 35/100
-
Difficulty 5/5 Over a week Newbie friendliness 20/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
clojure-emacs/cider#4203 ·
-
.Team/QueryingPlatform Priority:P2
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
clj-commons/antq#329 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100