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: Éloi Rivard
Subject: Re: [Denemo-devel] Indentation (was Re: Command generation mechanism)
Date: Mon, 6 May 2013 17:54:39 +0200

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


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]