unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Dmitry Gutov <dgutov@yandex.ru>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 20322@debbugs.gnu.org
Subject: bug#20322: 25.0.50; indent-tabs-mode should default to nil
Date: Fri, 17 Apr 2015 05:48:08 +0300	[thread overview]
Message-ID: <55307468.8070307@yandex.ru> (raw)
In-Reply-To: <83vbgx9xtl.fsf@gnu.org>

On 04/15/2015 07:10 PM, Eli Zaretskii wrote:

> If it turns out that most of the modes need indent-tabs-mode set to
> nil, you can make it the default in prog-mode, or even in fundamental
> mode.

Make it the default in fundamental mode means changing the default value 
of the variable.

> As long as the modes that don't need to avoid tabs are changed
> to have the same default as now, I won't object.

I'm not aware of any popular programming language that doesn't work with 
tabs for indentation. So "need" is a pretty strong word. If the 
statistics show that spaces are more popular on GitHub for C and C++, 
why not follow the logical conclusion and change the defaults for those 
modes, too?

Note that cc-mode also services the needs of Emacs users writing Java 
and Objective-C (all seven of them), and those folks must be relatively 
modern-inclined.

And while I wouldn't mind leaving this bee's nest "as is", there's no 
way to do that just for C and C++ without introducing additional 
complication for users that *do* want to use spaces with those langs.

>> Like I said, in the end that would call for the change of the
>> default value. In the meantime, should we have an
>> xxx-indent-tabs-mode variable per major mode?
>
> I don't see a need for a mode-specific variable in this case; do you?

How, then, will the users change that value? With `add-hook', 
`xxx-mode-hook' and a lambda function?

That's a significant jump in complexity from what's currently needed to 
change `indent-tabs-mode' - either `setq-default', or actually using the 
`Customize' interface.

Think back to the four "how to configure indentation" steps I listed in 
an earlier email. Now mode-hooks and lambdas will add one or two new 
ones, and without a variable, the user will have to figure out somehow 
that the major mode function changes the `indent-tabs-mode' value.

It wouldn't have simplified the scenario for me: at the time I 
configured Emacs both for JavaScript *and* C (and a few other 
languages), to do tutorials, exercises and that kind of stuff.

>>> The vast majority of people I work with use tabs, FWIW.
>>
>> Do they use 8-column offsets, then?
>
> No (that's how I know they use tabs in the first place!).

One of us doesn't understand the other here. Just to be sure: I meant 
`c-basic-offset', not `tab-width'.

> For a customizable option, this is not an issue.  I can understand
> that the new generation may want to get rid of tabs, but since most of
> that generation don't work in C/C++, I think we can leave those alone
> for now.

The question is not what the majority of the "new generation" works in 
(probably Java, or PHP), but what fraction of C/C++ programmers uses spaces.

Anyway, just for an arbitrary example, here's the three projects using 
C++ that I've looked at most recently. All relevant to Emacs's code 
assistance (which is the area I'm paying attention to lately):

https://github.com/Sarcasm/irony-mode
https://github.com/AndersBakken/rtags
https://github.com/Valloric/ycmd

None of them use tabs.





  reply	other threads:[~2015-04-17  2:48 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-14  2:37 bug#20322: 25.0.50; indent-tabs-mode should default to nil Dmitry Gutov
2015-04-14  3:07 ` Stefan Monnier
2015-04-14 14:14   ` Dmitry Gutov
2015-04-14 15:25     ` Eli Zaretskii
2015-04-14 15:39       ` Dmitry Gutov
2015-04-14 15:59         ` Eli Zaretskii
2015-04-14 20:24           ` Dmitry Gutov
2015-04-14 21:43             ` Stefan Monnier
2015-04-14 22:17               ` Dmitry Gutov
2015-04-15  1:19                 ` Stefan Monnier
2015-04-15  2:08                   ` Dmitry Gutov
2015-04-15  4:19                     ` Stefan Monnier
2015-04-20 14:56                       ` Dmitry Gutov
2015-04-20 19:26                         ` Stefan Monnier
2015-04-20 22:09                           ` Dmitry Gutov
2015-04-21  1:25                             ` Stefan Monnier
2015-04-21 19:25                               ` Dmitry Gutov
2015-04-21 19:47                                 ` Eli Zaretskii
2015-04-22 15:02                                   ` Dmitry Gutov
2015-04-22 15:18                                     ` Eli Zaretskii
2015-04-22 15:23                                       ` Dmitry Gutov
2015-04-22 15:28                                         ` Eli Zaretskii
2015-04-22 15:49                                           ` Dmitry Gutov
2015-04-21 20:27                                 ` Stefan Monnier
2015-04-21 20:51                                   ` Dmitry Gutov
2015-04-22 13:56                                 ` Stefan Monnier
2015-04-22 14:59                                   ` Dmitry Gutov
2015-04-22 16:47                                     ` Stefan Monnier
2015-11-02 18:18                                     ` Dmitry Gutov
2015-11-02 20:37                                       ` John Wiegley
2015-11-02 21:03                                         ` Dmitry Gutov
2015-11-02 21:18                                           ` John Wiegley
2015-11-02 21:06                                         ` Eli Zaretskii
2015-11-02 21:29                                           ` John Wiegley
2015-11-02 23:31                                             ` Richard Stallman
2015-11-03  3:32                                             ` Eli Zaretskii
2015-11-02 23:31                                         ` Richard Stallman
2015-04-15 14:31                     ` Wolfgang Jenkner
2015-04-15 16:10             ` Eli Zaretskii
2015-04-17  2:48               ` Dmitry Gutov [this message]
2015-04-17  4:58                 ` Stefan Monnier
2015-04-17 13:14                   ` Dmitry Gutov
2015-04-17  7:26                 ` Eli Zaretskii
2015-04-17  8:11                   ` Eli Zaretskii
2015-04-17 14:17                   ` Dmitry Gutov
2015-04-17 14:36                     ` Eli Zaretskii
2015-04-17 15:55                       ` Dmitry Gutov
2015-04-17 16:23                         ` Eli Zaretskii
2015-04-17 18:12                     ` Stefan Monnier
2015-04-17 18:18                       ` Dmitry Gutov
2015-04-20 15:03                   ` Dmitry Gutov
2015-04-17  7:55                 ` Andreas Schwab
2015-04-17  8:12                   ` Eli Zaretskii
2015-04-17 10:55                   ` Dmitry Gutov
2015-12-26 14:27             ` Dmitry Gutov
2015-12-27  2:52               ` Richard Stallman
2015-12-27  3:21                 ` Dmitry Gutov
2015-12-27 15:50               ` Eli Zaretskii
2015-12-27 16:10                 ` Dmitry Gutov
2015-12-27 16:28                   ` Eli Zaretskii
2015-12-27 16:51                     ` Dmitry Gutov
2015-12-30  4:47               ` John Wiegley
2015-12-30 11:48                 ` Dmitry Gutov
2015-12-30 12:15                   ` Dmitry Gutov
2015-12-30 19:18                     ` John Wiegley
2015-12-31  0:24                       ` Dmitry Gutov
2015-12-31  1:17                         ` John Wiegley
2015-12-31  1:26                           ` Dmitry Gutov
2015-12-31  2:48                             ` John Wiegley
2015-12-31  6:30                       ` Richard Stallman
2015-04-14 17:15         ` Stefan Monnier
2015-04-14 18:08           ` Nicolas Petton
2015-04-14 20:33           ` Dmitry Gutov
2015-04-14 19:09     ` Achim Gratz
2015-04-14 21:58       ` Dmitry Gutov
2015-04-15  2:33   ` Richard Stallman
2015-04-15 11:18     ` Dmitry Gutov
2015-04-15 16:17       ` Eli Zaretskii
2015-04-15 23:03         ` Dmitry Gutov
     [not found]   ` <<E1YiD8o-000318-H5@fencepost.gnu.org>
2015-04-15 15:29     ` Drew Adams
2015-04-14 14:17 ` Eli Zaretskii
2015-04-14 14:40   ` Dmitry Gutov
2015-04-14 15:29     ` Eli Zaretskii
2015-04-14 15:48       ` Dmitry Gutov
2015-04-14 16:02         ` Eli Zaretskii
2015-04-17 17:22         ` Philipp Stephani
2015-04-18  2:55           ` Dmitry Gutov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55307468.8070307@yandex.ru \
    --to=dgutov@yandex.ru \
    --cc=20322@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).