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 11:27:51 +0200

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.
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 ?
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 ?


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. »

reply via email to

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