Christian, Thank you for the clarification about ctags and clang. I am switching to C for now, since I have some personal interests here. I am learning GObject concept and playing with builder. I run builder with -vvvv option just in case. The builder crashed when closed the latest window. I attached stdout/stderr file. I don't exactly for what I should file a bug. Anyway, I can file if it helps. -Pavlo. On Sun, 2017-02-05 at 14:02 -0800, Christian Hergert wrote:
On 02/03/2017 06:22 AM, p_solntsev meta ua wrote:I played a little bit. And have some questions to ask. What it the purpose of <project>.tags file in ~/.cache/gnome-builder/tags?That is where we place the tags file for the project if we generate them with our own `ctags ...` command. If we use automake to generate the tags with `make ctags`, it will generate them in the build directory. One thing we probably still need to improve now that we do builds out-of-tree by default is to ensure we check the build directory for tags files (as opposed to $srcdir). I've filed https://bugzilla.gnome.org/show_bug.cgi?id=778217 to track this.From debug output the program complains "Error open file ...". It is clear since the file is not there. clang completion gives so many C functions such so it becomes hard to use completion. Ideally, I would like to have at least something similar to OmniCppCompletion (in Vim) in gtkmm project.We use the same backend (provided clang_codeCompleteAt() API) so is there something more specific that you would like to see changed? One place where we differ today is that we use our own fuzzy sorting for completion items because we were getting fairly poor sorting from clang directly. This could still use more performance optimization in case anyone is interested.Can we summarize all possible completion options here? I may help with documentation. Thus, two options: 1) clang (Some brief explanation how this completion works. What files parsed? etc)We use the clang_codeCompleteAt() API with the CXTranslationUnit that was parsed from the loaded file. We parse things like -I, -D, -std, and -x from the build system to prime Clang with the appropriate compile time options. Paths such as those passed to -I are translated into full paths before passing to clang such that relative paths do not bite us.2) ctags |-- Automatically generated ctags file (Describe general process for end users) |-- Custom ctags file. (How to make file, Where to place file, Configuration etc)See ide_ctags_service_miner() in plugins/ctags/ide-ctags-service.c for the definitive answer. But in general, we will look at the generated project.tags file, ~/.tags, or any file named "tags" in the source tree. Once bug #778217 is fixed, that will also include $builddir.Common questions: Difference between C and C++ completion, if any.Both use the same plumbing, so while we have spent virtually zero time on C++ enablement, it *should* work.Autotools configuration for completion purpose, if any.We have a bunch of fancy makefile extraction that looks at autotools patterns. See plugins/autotools/ide-makecache.c for the gritty details.I can't get the desired completion for gtkmm project and what to understand is this lack of information or program limitation.Personally, I would choose either ctags *or* clang, but not both. Ctags can be incredibly fast. But clang will give you expansion templates and some other nice features. -- Christian _______________________________________________ builder-list mailing list builder-list gnome org https://mail.gnome.org/mailman/listinfo/builder-list
Attachment:
builder.log
Description: Text Data