-
Notifications
You must be signed in to change notification settings - Fork 78
feat: add support for getLocFromIndex
and getIndexFromLoc
#376
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Before you get too far on this, is this function currently needed? As discussed in eslint/rewrite#166, this is an expensive operation and I don't think we want to incorporate it unless we absolutely need it. |
I thought this method could replace the It’s currently used in two rules, and I use this kind of logic in my own rules as well (for context, please see https://github.com/lumirlumir/npm-eslint-plugin-mark/blob/main/packages/eslint-plugin-mark/src/core/ast/text-handler/text-handler.js). If this feature isn’t necessary for now, I’ll go ahead and close it. (If it is fine, I would like to keep exploring and look for a more performant solution.) |
@lumirlumir ah, I forgot about that. Gotcha. 👍 If you're going to go through the trouble of investigating, then I'd suggest doing it on |
@nzakas Thanks for understanding! I’ll keep this PR open for now, move on to implementing Can I assign myself for the issue I've created? eslint/rewrite#166 |
Go ahead. |
The other thing to keep in mind is that Line 71 in cb5a956
It's finding the offset inside a given node's text. |
getLocFromIndex
getLocFromIndex
and getIndexFromLoc
Hi everyone, it looks like we lost track of this pull request. Please review and see what the next steps are. This pull request will auto-close in 7 days without an update. |
"dependencies": { | ||
"@eslint/core": "^0.14.0", | ||
"@eslint/plugin-kit": "^0.3.1", | ||
"@eslint/plugin-kit": "^0.4.0", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As @eslint/plugin-kit
v0.4.0 has been released, we could now continue work here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was some delay on my end with the markdown
plugin. I'll work on it soon! 👍
describe("getLocFromIndex()", () => { | ||
it("should convert index to location correctly", () => { | ||
const text = "foo\nbar\r\nbaz"; | ||
const markdownSourceCode = new MarkdownSourceCode({ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've used the markdownSourceCode
name here because the following errors occur:
110:10 error 'sourceCode' is already declared in the upper scope on line 63 column 6 no-shadow
173:10 error 'sourceCode' is already declared in the upper scope on line 63 column 6 no-shadow
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks!
Prerequisites checklist
What is the purpose of this pull request?
In this PR, I've updated the
@eslint/plugin-kit
and@eslint/core
dependencies to add support for thegetLocFromIndex
andgetIndexFromLoc
methods.Since these methods were already well tested in the
rewrite
repository, I've only added a few simple tests to verify their behavior.What changes did you make? (Give an overview)
In this PR, I've updated the
@eslint/plugin-kit
and@eslint/core
dependencies to add support for thegetLocFromIndex
andgetIndexFromLoc
methods.Related Issues
Ref: eslint/rewrite#212
Is there anything you'd like reviewers to focus on?
N/A
Prerequisite
getLocFromIndex
andgetIndexFromLoc
rewrite#212getLocFromIndex
eslint#19782