[#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:109270] [Ruby master Misc#18891] Expand tabs in C code

From: "nagachika (Tomoyuki Chikanaga)" <noreply@...>
Date: 2022-07-21 03:05:37 UTC
List: ruby-core #109270
Issue #18891 has been updated by nagachika (Tomoyuki Chikanaga).


I also support the 2nd solution from the perspective of stable branch maintenance.

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

* Author: k0kubun (Takashi Kokubun)
* Status: Open
* 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