Option to disable auto-close parenthesis?

I want to disable auto-closing parenthesis feature.

image

I have looked for the code which does this, but I couldn’t. Anyone knows?

2 Likes

I agree - I often find myself going back to add markup somewhere in the middle of text, and end up having to erase the auto-paired bits. I would turn this off if I had the option. (Or maybe even better: auto-pair only if it’s at the end of a line of text, not the middle?)

9 Likes

Agreed. Logseq’s current autopairing is not very intuitive yet, it would be nice if we could just disable this feature outright. Disabling autopair should also disable the feature where backspacing once on ** deletes both the asterisks.

5 Likes

+1 to this, I also find it impedes my writing flow more than it assists.

Ideally we could have separate options to control autopairing of quotes and brackets so that we can tailor to our needs. I find the quote matching more troublesome than the bracket matching since most bracket matching involves page or block refs and is therefore usually finalised via the autocomplete dialog. Quote matching trips me up every time.

4 Likes

Can confirm that this is very frustrating. “How do I disable auto closing of syntax markup” was like the second thing I looked up upon starting to use Logseq “for real” and I’m very disappointed to find out that it’s not possible :frowning:

2 Likes

+1 from me. In addition, it should be selective. E.g., I typically want to auto-close wikilinks but not normal brackets.

2 Likes

Make it an option to disable is fine, but make it work correctly seems to be the way forward. I do like the auto-close parenthesis but it should only autoclose when text is selected. before and after the selected text.

If you want to make it even nicer, when you type a ( immediatly before a word (so without a space) it should add the typed ( where you typed it and also add a ) at the end of that word, without explicitly selecting it.

2 Likes

I like the auto-close parens. But you’re right it is not perfect yet. For one thing, backticks don’t auto-close the same way parens do: I mean if you type exactly this: (foo) including the close-paren, your cursor ends up after the close paren – it correctly doesn’t duplicate the close. Same with [[foo]]; as you type the close brackets it skips over them. But if you type backquote f o o backquote (I can’t get backquotes into this forum) it duplicates the trailing backquote (twice!) instead of skipping over it. The inconsistency drives me crazy.

1 Like

I believe this functionality is called autopair, and it can be found here:

I think this is the usual place it is triggered, based on commit history:

It does not currently look conditional. I am not familiar with Clojure or any LISP-style language so I can’t quite see how to change that at present.

I am also in favour of being able to disable this functionality, even if just by manually adding a line to my config file. Like @pospi I find that it impedes me more than it helps, but maybe I type weird.

I hope my code links are helpful, sorry it’s not a pull request.

7 Likes

Really Helpful! Thanks!

I tried removing all “autopair” function calling and seems working as expected at first, but I noticed auto-completing for “[[ ]]” and “(( ))” is still remains…

Movie

I guess these behavior are implemented in another function, but I couldn’t find also…:sob:

The current status of my change

1 Like

+1, I turn it off in every application that has it and was surprised to learn that that’s not possible in Logseq.

4 Likes

Same request, auto-close parenthesis may break sth. I think it’s reasonable to add this option and leave this choice to user.

2 Likes

Note that you can select a phrase and then type an opening parenthesis and Logseq closes it around what you selected. Initially got annoyed by Logseq trying to help but I’ve now used it to my advantage.

Please give users options what to choose.

2 Likes

It’s really frustrating. No-feature is better than poorly-implemented-feature.
Auto-pair is common in code editors and it woks seamlessly, because there are nuances how it should work, it’s not just doubling a character.
Say, I want to add backtick to finish line of code. I put the cursor to the end:

`const x = 1⎸

and type backtick. And Logseq puts two backticks:

`const x = 1`⎸`

It does not make any sense to add closing backtick when I’m at the end of the word! what makes it worse is that if I hit backspace, to delete one unnecessary backtick, it deletes them both.
So the only way to add a backtick at the end of the word is to:

  1. Hit backtick
  2. Hit right arrow to place the cursor after the second backtick
  3. Hit backspace to remove unnecessary backtick.
  4. Feel productive.

It is not helpful at all. And it’s not acceptable in tool for thought like Logseq, because it breaks the flow.
No feature is better than a broken feature.

6 Likes

As @acomagu pointed out, the set of characters to autopair is defined in autopair-map. It would be nice if it was possible to edit this at least in the edn config - either to just force it empty via (def autopair-map {}), or even configure your own set of pairs.

1 Like

Adding my strong support for this feature request. I find autopairing much more annoying than helpful.

5 Likes

another strong support from me. this would make the writing experience better for many users

3 Likes

When cursor just before a word auto-pairing should be disabled.
This is about symbols

`
[
)
~

maybe some other I missed

I should help avoid such situation

[[]]my_super_tag