mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-10-26 11:08:40 +03:00
A Community-led Hyper-Hackable Text Editor
4eec1c211e
When we expand a snippet, we know where the variables are within the snippet; they're described using `Point`s, but the origin of the coordinate system is the beginning of the snippet. To translate them into actual buffer `Point`s during snippet expansion, we “add” each point to the `Point` that marks the insertion point of the snippet. When doing so, we need to remember that, when a snippet contains a newline and content after that newline, that second line of content will be indented by the same amount as the initial line; we know how much leading whitespace (if any) there was before the snippet trigger text and apply it at the head of each line of the expansion. For this reason, we were adding the two points incorrectly. Since the column position doesn't reset to `0` each time a row is advanced, we should've been using `Point#translate`, not `Point#traverse`. I'd have caught this earlier if I had thought to test the combination of variable expansion and leading whitespace. I see other usages of `Point#traverse` in different contexts in this file, but I'll leave them be until they can be proven to be the source of a bug. |
||
---|---|---|
.github | ||
docs | ||
dot-atom | ||
exports | ||
hooks | ||
integration | ||
keymaps | ||
menus | ||
packages | ||
ppm@3542dee00f | ||
resources | ||
script | ||
spec | ||
src | ||
static | ||
vendor | ||
.cirrus.yml | ||
.codacy.yaml | ||
.eslintignore | ||
.eslintrc.js | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
.nvmrc | ||
.yarnrc | ||
CHANGELOG.md | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
Dockerfile | ||
LICENSE.md | ||
package.json | ||
playwright.config.ts | ||
pnpm-workspace.yaml | ||
PULL_REQUEST_TEMPLATE.md | ||
pulsar.sh | ||
README.md | ||
SUPPORT.md | ||
yarn.lock |