Hi.
I'm aware of XDG recommendations, but it was not my point.
I was just thinking of checking for alternative name (like DOS_GTAGSRC is
checked if GTAGSRC is not found).
The purpose I see a way to hide (using dot-prefix) global configuration
from clients who don't use and don't care about global.
That's it.
----
However there is another story. You have listed *1*-*8* strategies of
providing global configuration.
I would divide it into 3 categories:
- System configuration: *SYSCONF*
- User configuration: *USERCONF*
Directory configuration: *DIRCONF*
I would have:
- *DIRCONF*: Inherits and shadows *USERCONF* (if *USERCONF* is defined,
if not ihnerits and shadows *SYSCONF* if *SYSCONF* is defined)
- *USERCONF*: Inherits and shadows *SYSCONF* (if *SYSCONF* is defined)
For example:
There is some C++ project that is using some non-standard files extensions
like .IPP to indicate interface headers.
For this particular project I would have to define *GTAGSCONF* as follows:
...
builtin-parser:\
:langmap=c\:.c.h,yacc\:.y,asm\:.s.S,java\:.java,cpp\:.c++.
cc.hh.cpp.cxx.hxx.hpp.C.H*.IPP*,php\:.php.php3.phtml:
...
The problem is, I have to provide whole configuration per project
(directory), so effectively I would copy *SYSCONF* to project directory and
make that change (add *.IPP* to the *cpp parser*).
$ cp /etc/gtags.conf MYPROJ/ (and edit local copy)
Instead I would like to append that entry; using some imaginary *termcap*
notation:
*builtin-parser:langmap:cpp:+.IPP*
Or let's say I'm working on several projects and it's common for my
organization to have *BUILD* directory in project root path (like
MYPROJ/BUILD) and one of these projects is using special extensions for C
source files to indicate code standard, like *.c98* and *.c99*.
For every single project I would have to copy *GTAGSCONF* to its root patch.
I would have to change the *skip entry* in every configuration to ignore
*BUILD* directory as follows:
...
common:\
:skip=HTML/,HTML.pub/,tags,TAGS,ID,y.tab.c,y.tab.h,gtags.files,cscope.files,cscope.out,cscope.po.out,cscope.in.out,SCCS/,RCS/,CVS/,CVSROOT/,{arch}/,autom4te.cache/,*.orig,*.rej,*.bak,*~,#*#,*.swp,*.tmp,*_flymake.*,*_flymake
*,**BUILD/*:
...
And I would have edit* langmap for buildin-parser *only for one project
with non-standard extensions (*.c89* and *.c99*) as follows:
...
builtin-parser:\
:langmap=c\:.c.h*.c89.c99*
,yacc\:.y,asm\:.s.S,java\:.java,cpp\:.c++.cc.hh.cpp.cxx.hxx.hpp.C.H,php\:.php.php3.phtml:
...
Instead, I'd like to append *BUILD/* to skip list for my user, by editing
*USERCONF** using *some imaginary *termcap* notation:
*common:skip:+BUILD/*
And I'd like to append non-standard suffixes to project's *DIRCONF* only *using
*some imaginary *termcap* notation:
*builtin-parser:langmap:c:+.c89.c99*
This way my *"single** USERCONF*" and "single *DIRCONF*" would contain few
lines of information instead of hard copy of whole *GTAGSCONF*.
*What do you think about that Shigio-san?*
Regards,
Jacek Migacz
2017-03-07 0:32 GMT+01:00 Shigio YAMAGUCHI <[email protected]>:
> Hi,
> > would you consider checking for alternative local
> > configuration filename: ".gtags.conf"?
>
> OK. I also dislike a name '.globalrc'.
> But it may be also undesirable to create a new dot file.
> The XDG guidelines recommend that applications store their configuration
> in $XDG_CONFIG_HOME/<app>. How about following this?
>
> XDG Base Directory Specification
> [https://specifications.freedesktop.org/basedir-spec/latest/index.html]
>
> According to this specification, the configuration priority of GLOBAL
> seems to
> become like follows:
>
> (1) --gtagsconf file
>
> (2) $GTAGSCONF
>
> (3) [project root]/gtags.conf
>
> (4) $HOME/.globalrc
>
> (5) $XDG_CONFIG_HOME/gtags/gtags.conf <= New
>
> (6) $HOME/.config/gtags/gtags.conf <= New
>
> (7) /etc/gtags.conf
>
> (8) [sysconfdir]/gtags.conf
>
> What do you think?
>
> Regards,
> Shigio
>
>
> 2017-03-07 2:07 GMT+09:00 Jacek Migacz <[email protected]>:
>
>> Hi Shiyao-san,
>>
>> would you consider checking for alternative local configuration filename:
>> ".gtags.conf"?
>>
>> Regards,
>> --
>> Jacek Migacz
>>
>> _______________________________________________
>> Bug-global mailing list
>> [email protected]
>> https://lists.gnu.org/mailman/listinfo/bug-global
>>
>>
>
>
> --
> Shigio YAMAGUCHI <[email protected]>
> PGP fingerprint:
> 26F6 31B4 3D62 4A92 7E6F 1C33 969C 3BE3 89DD A6EB (Currently in use)
> D1CB 0B89 B346 4AB6 5663 C4B6 3CA5 BBB3 57BE DDA3 (Used until 2017/2)
>
--
Jacek Migacz
_______________________________________________
Bug-global mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-global