[#109115] [Ruby master Misc#18891] Expand tabs in C code — "k0kubun (Takashi Kokubun)" <noreply@...>

Issue #18891 has been reported by k0kubun (Takashi Kokubun).

13 messages 2022/07/02

[#109118] [Ruby master Bug#18893] Don't redefine memcpy(3) — "alx (Alejandro Colomar)" <noreply@...>

Issue #18893 has been reported by alx (Alejandro Colomar).

11 messages 2022/07/02

[#109152] [Ruby master Bug#18899] Inconsistent argument handling in IO#set_encoding — "javanthropus (Jeremy Bopp)" <noreply@...>

Issue #18899 has been reported by javanthropus (Jeremy Bopp).

10 messages 2022/07/06

[#109193] [Ruby master Bug#18909] ARGF.readlines reads more than current file — "JohanJosefsson (Johan Josefsson)" <noreply@...>

Issue #18909 has been reported by JohanJosefsson (Johan Josefsson).

17 messages 2022/07/13

[#109196] [Ruby master Bug#18911] Process._fork hook point is not called when Process.daemon is used — "ivoanjo (Ivo Anjo)" <noreply@...>

Issue #18911 has been reported by ivoanjo (Ivo Anjo).

9 messages 2022/07/13

[#109201] [Ruby master Bug#18912] Build failure with macOS 13 (Ventura) Beta — "hsbt (Hiroshi SHIBATA)" <noreply@...>

Issue #18912 has been reported by hsbt (Hiroshi SHIBATA).

20 messages 2022/07/14

[#109206] [Ruby master Bug#18914] Segmentation fault during Ruby test suite execution — "jprokop (Jarek Prokop)" <noreply@...>

Issue #18914 has been reported by jprokop (Jarek Prokop).

8 messages 2022/07/14

[#109207] [Ruby master Feature#18915] New error class: NotImplementedYetError or scope change for NotImplementedYet — Quintasan <noreply@...>

Issue #18915 has been reported by Quintasan (Michał Zając).

18 messages 2022/07/14

[#109260] [Ruby master Feature#18930] Officially deprecate class variables — "Eregon (Benoit Daloze)" <noreply@...>

Issue #18930 has been reported by Eregon (Benoit Daloze).

21 messages 2022/07/20

[#109314] [Ruby master Bug#18938] Backport cf7d07570f50ef9c16007019afcff11ba6500d70 — "byroot (Jean Boussier)" <noreply@...>

Issue #18938 has been reported by byroot (Jean Boussier).

8 messages 2022/07/25

[#109371] [Ruby master Feature#18949] Deprecate and remove replicate and dummy encodings — "Eregon (Benoit Daloze)" <noreply@...>

Issue #18949 has been reported by Eregon (Benoit Daloze).

35 messages 2022/07/29

[ruby-core:109280] [Ruby master Misc#18891] Expand tabs in C code

From: "mame (Yusuke Endoh)" <noreply@...>
Date: 2022-07-21 12:23:19 UTC
List: ruby-core #109280
Issue #18891 has been updated by mame (Yusuke Endoh).

Status changed from Open to Assigned

We discussed this issue at the dev meeting.

Finally, we were able to reach an agreement to expand hard tabs. Congratulations!

----------------------------------------
Misc #18891: Expand tabs in C code
https://bugs.ruby-lang.org/issues/18891#change-98412

* Author: k0kubun (Takashi Kokubun)
* Status: Assigned
* Priority: Normal
----------------------------------------
# Problem
There's no way to handle tab/space-mixed indentation of CRuby's C code properly in VSCode. It impacts the productivity of the VSCode users a lot, including myself.

# Suggested solutions
I implemented option 2 out of the following options at https://github.com/ruby/ruby/pull/6094.

1. You tell me how to do that in VSCode.
   * In VSCode, there seems to be no native feature to show tabs as 8 spaces while still indenting with 4 spaces. At least https://github.com/microsoft/vscode/issues/42740 is still open.
   * @alanwu built https://github.com/XrXr/vscode-tabs-are-two-indents exactly for this purpose, but even with the extension, it still seems to wrongly detect an indentation level on new lines.
2. **Expand all tabs in most of the C code at once and add the commit to `.git-blame-ignore-revs`**
   * pros: GitHub and `git blame --ignore-revs-file` support it. Unlike option 3, commit logs and `.git-blame-ignore-revs` can be short.
   * cons: It might be a bit difficult to find out which C files shouldn't be a target. Bare `git blame` could be inconvenient.
3. Allow expanding all tabs in each C file as we want and manage the list of such commits in `.git-blame-ignore-revs`
   * pros: GitHub and `git blame --ignore-revs-file` support it. You don't introduce unnecessary changes to files you don't care about.
   * cons: We might see too many commits for this in the commit history. Bare `git blame` could be inconvenient for such files.
4. Discourage contributions to CRuby from VSCode users. (proposed by @graywolf)

# Drawbacks
The expected drawbacks of doing option 2 are:

* Existing patches on hard-tab lines may conflict.
* Backporting patches on hard-tab lines made after this commit to revisions before this commit may conflict.

I assume that resolving such conflicts wouldn't be too difficult and this problem will not last forever.

# Out of scope
I'm not interested in discussing the adoption of clang-format. It would change a lot of things that are not related to the problem.

# Past discussion
https://bugs.ruby-lang.org/issues/16112 touched this topic before, but we haven't discussed `--ignore-revs-file` so much. I also didn't know VSCode still can't deal with it in 2022 (as I've been using Vim).



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread