denemo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Denemo-devel] Indentation (was Re: Command generation mechanism)


From: Richard Shann
Subject: Re: [Denemo-devel] Indentation (was Re: Command generation mechanism)
Date: Mon, 06 May 2013 17:27:08 +0100

On Mon, 2013-05-06 at 17:54 +0200, Éloi Rivard wrote:
> I idented src and utils directories with indent -nut -l500, to use
> tabs instead of spaces so the code displays the same on every editors,
> and to not break lines after 80 columns.
> 
> This is on the 'indent' branch. Let me know if it is ok to you

I have built this version and it seems to be running just fine - of
course we have no regression tests, but I trust GNU indent.
One thing that surprised me is the coding style is not what I remembered
(about 15 years ago I worked in a company that specified GNU coding
style for newly-written code) and my memory was that it involved opening
braces on the same line as the function name, ie

void myfun (void) {


}

whereas what you have looks more like the K&R that I first got to know,
ie
int myfun ()
{


}

but so long as this is current GNU coding standards I am happy to go
with it.

Richard


> 
> 
> 
> 2013/5/6 Éloi Rivard <address@hidden>
>         That's what I mean :)
>         
>         
>         
>         2013/5/6 Richard Shann <address@hidden>
>                 On Mon, 2013-05-06 at 11:27 +0200, Éloi Rivard wrote:
>                 > Indent is a GNU program that let you indent your
>                 code the way you
>                 > want: http://www.gnu.org/software/indent/
>                 >
>                 > I think most of linux distributions have a package
>                 for this.
>                 
>                 Ah, yes, I have it now, a separate package called
>                 indent ( :) ) on
>                 Debian.
>                 
>                 >
>                 > This let you chose the indentation policy you want
>                 (number of spaces,
>                 > use of tabulations or not, braces at end of lines or
>                 at beginning
>                 > etc.)
>                 >
>                 > The default style of indent is "GNU" that is
>                 recommended for GNU
>                 > projects, what do you think of this one ?
>                 
>                 
>                 Yes, it was never my favorite, but I value
>                 standardization above
>                 personal preference.
>                 
>                 
>                 >
>                 > Maybe automatic indentation can not be a good idea
>                 in some case
>                 > indeed, though indent is pretty safe, because
>                 sometimes you just want
>                 > a particular alignment, for instance with arrays.
>                 >
>                 > Perhaps a code indent commit would be a good idea ?
>                 
>                 
>                 Do you mean a separate commit that does nothing but
>                 correct indentation.
>                 That would be very good indeed, it is really bad to
>                 mix code changes
>                 with indentation changes as I have been doing (but
>                 then, no-one else has
>                 been caring much ...).
>                 
>                 Richard
>                 
>                 
>                 
>                 >
>                 >
>                 >
>                 > 2013/5/6 Richard Shann <address@hidden>
>                 >         Indentation is often terrible in Denemo - I
>                 don't seem to have
>                 >         any
>                 >         indent command - this hook seems to refer to
>                 one, what would
>                 >         that be?
>                 >         I am not sure that automatic re-indenting on
>                 commit will be
>                 >         good -
>                 >         anything altering the programmer's text is
>                 controversial, but
>                 >         I would be
>                 >         very happy to adopt a convention given a
>                 tool to enable it. I
>                 >         have been
>                 >         fixing indentation myself by hand during the
>                 past year as I
>                 >         have edited
>                 >         code, despite the annoyance that doing it
>                 while making code
>                 >         changes
>                 >         makes the commit much harder to read. So a
>                 global tidy up
>                 >         followed by
>                 >         testing (it should be a *very* trusted
>                 indent tool!) would be
>                 >         good I
>                 >         think.
>                 >
>                 >         Richard
>                 >
>                 >         On Sun, 2013-05-05 at 20:50 +0200, Éloi
>                 Rivard wrote:
>                 >         > Here is an interesting indent pre-commit
>                 hook
>                 >         > https://gist.github.com/eroullit/1250603
>                 >         >
>                 >         >
>                 >         >
>                 >         > 2013/5/5 Éloi Rivard <address@hidden>
>                 >         >
>                 >         >
>                 >         >
>                 >         >         2013/5/5 Richard Shann
>                 <address@hidden>
>                 >         >                 On Sun, 2013-05-05 at
>                 17:09 +0200, Éloi
>                 >         Rivard wrote:
>                 >         >                 >
>                 >         >                 >
>                 >         >                 >
>                 >         >                 > 2013/5/5 Richard Shann
>                 >         <address@hidden>
>                 >         >                 >         On Sun,
>                 2013-05-05 at 13:41 +0200,
>                 >         Éloi
>                 >         >                 Rivard wrote:
>                 >         >                 >         > Let's imagine
>                 a user wants to
>                 >         create a
>                 >         >                 scheme command and
>                 >         >                 >         add it as a
>                 >         >                 >         > denemo default
>                 command. What
>                 >         process
>                 >         >                 should be followed ?
>                 >         >                 >
>                 >         >                 >
>                 >         >                 >         1)Use
>                 View->Scheme to get an
>                 >         editor. Type in
>                 >         >                 the scheme for
>                 >         >                 >         the new
>                 >         >                 >         command.
>                 >         >                 >         2)Decide on a
>                 position in the menu
>                 >         system
>                 >         >                 for the new command.
>                 >         >                 >         Right
>                 >         >                 >         Click on the
>                 item above the
>                 >         desired
>                 >         >                 position, and choose Save
>                 >         >                 >         As New
>                 >         >                 >         Menu Item.
>                 >         >                 >         3)Give a name
>                 for the command
>                 >         >                 >         4)Give a Label
>                 for the menu item
>                 >         that will
>                 >         >                 activate it
>                 >         >                 >         5)(optionally)
>                 give a submenu name
>                 >         >                 >         6)Save with
>                 default commands.
>                 >         >                 >         >
>                 >         >                 >         > I am not sure
>                 I understand roles
>                 >         of
>                 >         >                 tools : extract_all.sh,
>                 >         >                 >
>                 >         >                 >         this creates
>                 files that the
>                 >         translation tool
>                 >         >                 xgettext can use
>                 >         >                 >         >
>                  generate_sources
>                 >         >                 >
>                 generate_sources.c generates
>                 >         (ancient)
>                 >         >                 built-in commands
>                 >         >                 >         >  and the
>                 sources it generates,
>                 >         >                 >
>                 >         >                 >         > commands.c,
>                 >         >                 >
>                 >         >                 >         this exists for
>                 translatability,
>                 >         but is is
>                 >         >                 executed at startup
>                 >         >                 >         making
>                 >         >                 >         the original
>                 mechanism of reading
>                 >         >                 Default.commands generally
>                 >         >                 >         redundant
>                 >         >                 >         (except where
>                 new commands have
>                 >         been created
>                 >         >                 since the binary
>                 >         >                 >         was
>                 >         >                 >         generated)
>                 >         >                 >
>                 >         >                 >
>                 >         >                 > Why is it  needed to
>                 generate some c dummy
>                 >         files for
>                 >         >                 translation since
>                 >         >                 > scheme is supported by
>                 xgettext ?
>                 >         >
>                 >         >
>                 >         >                 there are no c dummy
>                 files, commands.c is
>                 >         executed, it
>                 >         >                 is not scheme
>                 >         >                 that is getting
>                 translatable it is menu
>                 >         labels and
>                 >         >                 tooltips.
>                 >         >
>                 >         >
>                 >         >                 >
>                 >         >                 >
>                 >         >                 >         >  denemoui.xml,
>                 >         >                 >         this is
>                 hand-written, it defines
>                 >         where the
>                 >         >                 built-in commands
>                 >         >                 >         appear in
>                 >         >                 >         the menu system
>                 >         >                 >         >
>                  GENERATE_SOURCE_CODE define
>                 >         etc.
>                 >         >                 >         This is used to
>                 create a version
>                 >         of Denemo
>                 >         >                 which generates the
>                 >         >                 >         source
>                 >         >                 >         code commands.c,
>                 that is you make
>                 >         Denemo
>                 >         >                 with that
>                 >         >                 >         preprocessor
>                 flag
>                 >         >                 >         defined, run it
>                 and it loads all
>                 >         the
>                 >         >                 commands (from
>                 >         >                 >
>                 Default.commands)
>                 >         >                 >         and generates
>                 new source code for
>                 >         Denemo
>                 >         >                 that contains
>                 >         >                 >         translatable
>                 >         >                 >         strings for all
>                 the commands. You
>                 >         then
>                 >         >                 re-compile Denemo
>                 >         >                 >         without that
>                 >         >                 >         flag and it uses
>                 the new source
>                 >         code; the
>                 >         >                 program's behavior
>                 >         >                 >         has not in
>                 >         >                 >         fact been
>                 altered, but it has
>                 >         labels and
>                 >         >                 tooltips for all
>                 >         >                 >         commands
>                 >         >                 >         translatable.
>                 >         >                 >
>                 >         >                 >
>                 >         >                 > Why not create another
>                 program dedicated
>                 >         to this
>                 >         >                 task and let denemo
>                 >         >                 > behavior more regular ?
>                 >         >
>                 >         >
>                 >         >                 yes, please do :) You just
>                 have to parse
>                 >         >                 Default.commands and
>                 generate
>                 >         >                 C-code from it.
>                 >         >
>                 >         >
>                 >         >
>                 >         >         See attached patch.
>                 utils/generate_commands creates
>                 >         the very
>                 >         >         same code than launching denemo
>                 with
>                 >         -DGENERATE_SOURCE_CODE
>                 >         >         I indented some code in keyboard.c
>                 so some line have
>                 >         been
>                 >         >         changed but the behavior is the
>                 same. I also fixed
>                 >         some unused
>                 >         >         variable warnings.
>                 >         >
>                 >         >         What about some indent commit
>                 hook ?
>                 >         >
>                 >         >
>                 >         >                 >
>                 >         >                 >
>                 >         >                 >         >  and some
>                 other I probably miss.
>                 >         >                 >
>                 >         >                 >         It could be. I
>                 seem to remember
>                 >         you
>                 >         >                 suggested the word
>                 >         >                 >         Pharaonic to
>                 >         >                 >         describe what
>                 was needed to make
>                 >         Denemo
>                 >         >                 translatable :)
>                 >         >                 >
>                 >         >                 >         >
>                 >         >                 >         > It should be
>                 understandable by
>                 >         reading and
>                 >         >                 hacking, but as
>                 >         >                 >         the process
>                 >         >                 >         > seems quite
>                 complicated, I think
>                 >         >                 developers comments would
>                 >         >                 >         be helpful.
>                 >         >                 >
>                 >         >                 >
>                 >         >                 >         It is very
>                 complicated - In the
>                 >         latest
>                 >         >                 release I missed the
>                 >         >                 >         fact that
>                 >         >                 >         after running
>                 extract_all.sh there
>                 >         are
>                 >         >                 generally further text
>                 >         >                 >         files
>                 >         >                 >         generated that
>                 need a git commit
>                 >         otherwise
>                 >         >                 the make dist step
>                 >         >                 >         fails to
>                 >         >                 >         create the po
>                 stuff. Those text
>                 >         files are in
>                 >         >                 >
>                 actions/commandscripts and
>                 >         >                 >         exist purely to
>                 allow xgettext to
>                 >         see the
>                 >         >                 (_ ) procedures -
>                 >         >                 >         the
>                 >         >                 >         translatable
>                 strings - in the
>                 >         scheme of the
>                 >         >                 scripted commands.
>                 >         >                 >         (By
>                 >         >                 >         contrast, the
>                 commands.c is
>                 >         generated to
>                 >         >                 allow xgettext to see
>                 >         >                 >         the
>                 >         >                 >         labels of the
>                 commands and their
>                 >         tooltips).
>                 >         >                 >
>                 >         >                 >         There are a lot
>                 of steps needed to
>                 >         create a
>                 >         >                 release and I am
>                 >         >                 >         very happy
>                 >         >                 >         to rehearse them
>                 here - it
>                 >         improves the
>                 >         >                 chance of me getting
>                 >         >                 >         it right
>                 >         >                 >         next time first
>                 time.
>                 >         >                 >
>                 >         >                 >
>                 >         >                 >
>                 >         >                 > Something that may be
>                 discouraging for a
>                 >         beginner at
>                 >         >                 the current
>                 >         >                 > state, is that when you
>                 edit some code,
>                 >         you can't
>                 >         >                 just compile & see
>                 >         >                 > since there seem to be
>                 some intermediate
>                 >         generation
>                 >         >                 steps. Maybe
>                 >         >                 > including those in the
>                 build system would
>                 >         make
>                 >         >                 things easier.
>                 >         >
>                 >         >
>                 >         >                 which code? The
>                 intermediate steps are just
>                 >         for
>                 >         >                 translation.
>                 >         >
>                 >         >
>                 >         >         If you want for instance add some
>                 metadata to
>                 >         actions/menu xml
>                 >         >         files, you may have to update
>                 translation steps too.
>                 >         >
>                 >         >
>                 >         >                 (Well, there is that
>                 ancient built in stuff,
>                 >         which we
>                 >         >                 really don't want
>                 >         >                 people expanding - new
>                 stuff should be
>                 >         scheme
>                 >         >                 generally. However, as it
>                 >         >                 is, it has advantages for
>                 re-engineering the
>                 >         built-in
>                 >         >                 stuff. There is an
>                 >         >                 ancient classification of
>                 commands in there
>                 >         which may
>                 >         >                 come in useful
>                 >         >                 some day, and it does
>                 generate the commands
>                 >         for notes
>                 >         >                 A-G and durations
>                 >         >                 0-7 programatically, which
>                 saves having to
>                 >         edit
>                 >         >                 multiple times if we
>                 >         >                 alter something about how
>                 they appear in the
>                 >         program.
>                 >         >                 But I wouldn't
>                 >         >                 seriously defend that
>                 stuff, if someone were
>                 >         to write
>                 >         >                 it cleanly from
>                 >         >                 scratch).
>                 >         >
>                 >         >                 Richard
>                 >         >
>                 >         >
>                 >         >
>                 >         >
>                 >         >
>                 >         >
>                 >         >         --
>                 >         >         Éloi Rivard - address@hidden
>                 >         >
>                 >         >         « On perd plus à être indécis qu'à
>                 se tromper. »
>                 >         >
>                 >         >
>                 >         >
>                 >         >
>                 >         > --
>                 >         > Éloi Rivard - address@hidden
>                 >         >
>                 >         > « On perd plus à être indécis qu'à se
>                 tromper. »
>                 >         >
>                 >
>                 >
>                 >
>                 >
>                 >
>                 > --
>                 > Éloi Rivard - address@hidden
>                 >
>                 > « On perd plus à être indécis qu'à se tromper. »
>                 >
>                 
>                 
>                 
>         
>         
>         
>         -- 
>         Éloi Rivard - address@hidden
>                 
>         « On perd plus à être indécis qu'à se tromper. »
>         
>         
>         _______________________________________________
>         Denemo-devel mailing list
>         address@hidden
>         https://lists.gnu.org/mailman/listinfo/denemo-devel
>         
> 
> 
> 
> -- 
> Éloi Rivard - address@hidden
>         
> « On perd plus à être indécis qu'à se tromper. »
> 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]