Typing a quote at the end of a string escapes it instead of closing the string

未关闭 适合新手
#63 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
75/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
clojure

调研方向

从链接的 handle-open 分支中的 src-shared/nextjournal/clojure_mode/extensions/close_brackets.cljc 开始,然后检查字符串处理如何区分闭合引号和在字符串内输入的引号。该 issue 描述了需要覆盖的两个情况:越过闭合引号,以及手动输入转义引号。完成标准是在实时编辑器中,两种情况都按描述运行,且不破坏引号配对。

由索引模型根据 Issue 内容生成。

描述

Typing "abc" the usual way gives "abc\"", in the live demo at https://nextjournal.github.io/clojure-mode/ too. The first " opens a pair with the cursor in between, but the last one is typed inside the string, and handle-open inserts \" for any " typed in a string, even right before the string's own closing quote:

https://github.com/nextjournal/clojure-mode/blob/e57fe8a/src-shared/nextjournal/clojure_mode/extensions/close_brackets.cljc#L78-L80

paredit steps over the closing quote there instead ("At the end of a string, move past the closing double-quote", from paredit-doublequote), and only escapes a " typed in the middle of a string. Right now the way out of a string is the right arrow.

The same branch also breaks typing an escape by hand: \ then " inside a string gives \\", since the " gets escaped again.

Seen on 0.3.3 and main (e57fe8a). It came up in the REPL on https://nrepl.org/playground/, which works around both with a " binding ahead of clojure-mode's.

主要语言
Clojure
星标
176
派生
18
平均合并
1 分钟
30 天内合并 PR
1

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

nextjournal/clojure-mode 的其他 Issue

查看 nextjournal/clojure-mode 的全部 Issue

相似的 Issue

更多 Clojure Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。