public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Segher Boessenkool <segher@kernel.crashing.org>
To: Yury Gribov <y.gribov@samsung.com>
Cc: GCC Patches <gcc-patches@gcc.gnu.org>,
	       Laurynas Biveinis <laurynas.biveinis@gmail.com>,
	       Jeff Law <law@redhat.com>,
	Richard Biener <richard.guenther@gmail.com>,
	       Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>,
	       Trevor Saunders <tsaunders@mozilla.com>,
	       Mike Stump <mikestump@comcast.net>
Subject: Re: [PATCHv4] Vimrc config with GNU formatting
Date: Thu, 18 Sep 2014 17:20:00 -0000	[thread overview]
Message-ID: <20140918172003.GA28595@gate.crashing.org> (raw)
In-Reply-To: <541A9A68.7050000@samsung.com>

On Thu, Sep 18, 2014 at 12:40:08PM +0400, Yury Gribov wrote:
> When typing 'make .local.vimrc' in GCC build directory one would expect
> .local.vimrc to be created at the root of build directory, not srcdir.

Yes, you would not expect it to do anything to your source dir, ever :-)

> >> +" To enable this for GCC files by default, install thinca's vim-localrc
> >> +" plugin and do
> >> +"   $ make .local.vimrc
> >
> > No, we should *not* advertise an "enough rope" solution without 
> mentioning
> > it *will* kill you.
> 
> How about adding a disclaimer? E.g. "beware that Vim plugins are a 
> GAPING SECURITY HOLE
> so use the at YOUR OWN RISK". (And note that Braun's plugin does use 
> sandboxes).

This *particular* plugin is suicidal.  Most plugins are just fine.

> > Or not mention it at all.  Esp. since your next option
> > has all the same functionality and more.
> 
> It lacks very important functionality: user has to specify path
> to concrete GCC source tree when adding the autocmd.

I was talking about mbr's plugin here :-)

> I have a dozen of trees on my box and I regularly rename, move or copy them.
> With plugins one doesn't have to bother fixing paths in ~/.vimrc
> which is important for productivity.

And  :au bufread ~/src/gcc/* ...  works for me.  To each their own.

> >> +" Or if you dislike plugins, add autocmd in your ~/.vimrc:
> >> +"   :au BufNewFile,BufReadPost path/to/gcc/* :so 
> path/to/gcc/contrib/vimrc
> >
> > There are many more reasons than just "dislike of plugins" to prefer
> > something like this.  For one thing, many Vim users will have many
> > similar statements in their config _already_.
> 
> So "if you don't want to use plugins"?

Just mention it as another option?  Something like
"You can add these options to your .vimrc; or you can :source this script
file; or do either with an :autocmd; or use e.g. the <name of plugin here>
plugin <some vim.org url>".  Don't say "do X if Y"; let people decide for
themselves what fits their situation best.

> >> +" Or just source file manually every time if you are masochist:
> >> +"   :so path/to/gcc/contrib/vimrc
> >
> > How is that masochist?  Typing that cino by hand though, now that would
> > qualify ;-)
> 
> Note that user has to type source command for every newly opened file.
> This indeed looks inconvenient (to me again).

Well for most people it is justt ":so contrib/vimrc".  Or just ":lo" if
you're talking about crazy people with views.

> >> +    setlocal 
> cinoptions=>2s,n-s,{s,^-s,:s,=s,g0,f0,hs,p2s,t0,+s,(0,u0,w1,m0
> >
> > If you write this as absolute numbers instead of as shift widths, you 
> do not
> > need to force sw and sts settings down people's throat.  It might also be
> > easier to read?  Well I doubt that, but it will be slightly shorter 
> at least.
> 
> IMHO matching shiftwidth with GNU indent may be useful.
> E.g. Vim won't reindent when you start editing an empty line and user
> will have to insert indents manually.
> 
> Also replacing offsets with numbers hides the fact
> that they are based on GNU shiftwidth.

I have no idea what you mean with "matching with GNU indent", sorry.
I was suggesting you could write it as
:set cino=>4,n-2,{2,^-2,:2,=2,g0,f0,h2,p4,t0,+2,(0,u0,w1,m0
and you'd be independent of sw setting.  The coding standard says
"indent two spaces" etc. anyway.

And yeah sw=2 does make sense for editing GCC, if you are used to sw=2
that is.  The point is that the sw setting has nothing to do with what
your text will look like, only with what keys you press.

> >> +    setlocal textwidth=79
> >
> > The coding conventions say maximum line length is 80.
> 
> From https://www.gnu.org/prep/standards/html_node/Formatting.html : 
> "Please keep the length of source lines to 79 characters or less, for 
> maximum readability in the widest range of environments."

There is a doc on gcc.gnu.org as well, which describes many more details.

> Now we rarely do violate textwidth in our codes,

"rarely"?  Ho hum.  There are many worse formatting errors, of course.
And how much do those matter _really_.

> > And you do not enable "t" (also
> > on by default), so you do not want to wrap text anyway?  Confused now.
> 
> Me as well, the original config author did it that way. IMHO +t makes 
> sense here.

It is certainly more consistent.


Segher

  parent reply	other threads:[~2014-09-18 17:20 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-04 13:06 Yury Gribov
2014-09-04 13:22 ` Richard Biener
2014-09-04 20:23   ` Bernhard Reutner-Fischer
2014-09-05 15:10     ` Yury Gribov
2014-09-05 16:46       ` Bernhard Reutner-Fischer
2014-09-06 16:33         ` Yury Gribov
2014-09-05 17:35       ` Segher Boessenkool
2014-09-06 15:40         ` Yury Gribov
2014-09-06 18:21           ` Trevor Saunders
2014-09-06 19:35           ` Segher Boessenkool
2014-09-07  4:18             ` Yuri Gribov
2014-09-07  4:48               ` Yuri Gribov
2014-09-07 13:33               ` Segher Boessenkool
2014-09-05 15:04   ` Yury Gribov
2014-09-10  8:09 ` [PATCHv2] " Yury Gribov
2014-09-10  8:17   ` Yury Gribov
2014-09-10 19:17   ` Segher Boessenkool
2014-09-11  4:47     ` Yury Gribov
2014-09-11  9:14       ` pinskia
2014-09-11  9:35         ` Yury Gribov
2014-09-11  9:06   ` Richard Biener
2014-09-11  9:18     ` Richard Biener
2014-09-11 10:10       ` Yury Gribov
2014-09-11 16:07         ` Yury Gribov
2014-09-14 10:32           ` Alexander Monakov
2014-09-15  9:54             ` Yury Gribov
2014-09-16 16:38   ` [PATCHv3] " Yury Gribov
2014-09-16 21:59     ` Trevor Saunders
2014-09-17 13:02       ` Segher Boessenkool
2014-09-17 14:05         ` Yury Gribov
2014-09-17 14:10           ` Yury Gribov
2014-09-17 17:08     ` [PATCHv4] " Yury Gribov
2014-09-18  3:54       ` Segher Boessenkool
2014-09-18  8:39         ` Yury Gribov
2014-09-18 15:37           ` Mike Stump
2014-09-18 17:20           ` Segher Boessenkool [this message]
2014-09-19  4:17             ` Yury Gribov
2014-09-19 11:11               ` Segher Boessenkool
2014-10-02 17:14       ` [PATCHv5] " Yury Gribov
2014-10-13 10:33         ` [PATCHv5][PING] " Yury Gribov
2014-10-21 15:24           ` [PATCHv5][PING^2] " Yury Gribov
2014-11-06 10:31             ` [PATCHv5][PING^3] " Yury Gribov
2014-11-28 18:00               ` [PATCHv5][PING^4] " Yury Gribov
2014-12-08 21:46                 ` Jeff Law

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

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

  git send-email \
    --in-reply-to=20140918172003.GA28595@gate.crashing.org \
    --to=segher@kernel.crashing.org \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=laurynas.biveinis@gmail.com \
    --cc=law@redhat.com \
    --cc=mikestump@comcast.net \
    --cc=rep.dot.nop@gmail.com \
    --cc=richard.guenther@gmail.com \
    --cc=tsaunders@mozilla.com \
    --cc=y.gribov@samsung.com \
    /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.
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).