Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

On pressing backspace+Enter, keep cursor indent #98

Closed
wants to merge 4 commits into from

Conversation

AndrewRadev
Copy link

When I want to "exit" a block of code while writing it, I press <backspace>. For example, I'm writing this:

if foo
  bar
  # cursor

When I press backspace, I'll get something like this:

if foo
  bar
# cursor

But then, I want to leave some space after the block, so I hit <enter>. The result is that the indent of the new line is set to the one of the last non-blank line:

if foo
  bar

  # cursor

While this seems to be a minor issue, it trips me up all the time. I suppose I should get used to leaving the space first with an <enter>, but I can't seem to do so :). In python, the behaviour is exactly as I want it to be, so I took a cue from that indent file and I tweaked this one to work like that.

I understand there may be some specific reason to have it this way. If so, I have no complaints to rejecting this PR outright.

@mattsacks
Copy link
Contributor

trips me up all the time too

👍

Comments seem to be handled fine without it, except their behaviour
matches the new backspacing behaviour -- when the user backspaces after
a comment line, their indentation is preserved when they hit "Enter".
@AndrewRadev
Copy link
Author

I also pushed a commit that makes the same behaviour work if the above line is a comment. To do that, I removed special handling of comment indentation. Everything seems to work okay after a few quick tests, but if someone notices any problems, please let me know.

@raine
Copy link

raine commented Aug 18, 2012

Should this happen when I press o for new line + insert mode and type a #?

edit: found this, http://stackoverflow.com/a/2323728/303712

Smart indent seems to be useful for C, but not necessary in this case.
@AndrewRadev
Copy link
Author

Seems like smartindent is meant for C -- it probably indents the # over there because it considers it a preprocessor directive. I've pushed a commit that unsets smartindent in coffeescript buffers.

In the end, there has to be an explicit check for comments, or they get
indented just like normal code.
@summivox
Copy link

summivox commented Nov 7, 2012

👍

kchmck added a commit that referenced this pull request Aug 30, 2013
@kchmck
Copy link
Owner

kchmck commented Aug 30, 2013

Looking back at the history, this was actually the original behavior before 2a691d9/#69. I prefer the current behavior, but obviously it's a subjective thing, so at long last I've added a config knob coffee_indent_keep_current if you prefer it to work this way.

@kchmck kchmck closed this Aug 30, 2013
@AndrewRadev AndrewRadev deleted the improve-backspacing branch September 4, 2013 18:59
@AndrewRadev
Copy link
Author

Thanks, this seems like it should please both camps.

lcharlick pushed a commit to lcharlick/vim-coffee-script that referenced this pull request Feb 21, 2014
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants