On Nov 18, 2012, at 20:55, Sergey Shambir <[email protected]> wrote:

> Hello all,
> 
> First, thanks to Eric Verbuggen who did perfect clang-based code model and 
> continues research in git branch. However, as i heard, he also busy in master 
> branch and v4vm. I'm sure that community can help with clang initiative, but 
> individual programmers have no enough information about branch status, 
> problems or interesting tasks and even about any brainstorm results. Can this 
> gap be filled at qt-project wiki?

Good idea! I'll try to do that today. Sneak-peek replies below.

> There are several questions which will be nice to clarify at wiki:
> 1) What libclang version is minimal requirement? Clang 3.2 will be released 
> only in december, but it already has nice API for accessing doxygen comments 
> and retrieving @brief comments for completion proposals. Possible solution is 
> macro with LLVM version:
>     LLVM_VERSION = $$system($$LLVM_CONFIG --version)
>     DEFINES += "LLVM_VERSION=$$LLVM_VERSION"
> but i can't figure out how to convert float "3.1" (returned by "llvm_config 
> --version") into integer that can be compared by preprocessor.

There are now also a libclang (interface) version macros that you can use 
(CINDEX_VERSION_MAJOR / _MINOR).

> 2) libclang is well designed and documented so clang branch has many 
> "easy-hack" tasks that can be done by anyone - i mean testing on real code 
> and fixing small errors/regressions. It will be nice to have easy-hacks list: 
> missed features, regressions with problematic code and test for things that 
> already done.

Yup. Anything not in the code or wired up is not done. Exception is indexing, 
on which I'm hacking away.

> 3) What about live diagnostics displaying? Diagnostic message itself can be 
> associated with QTextBlock, but should it underscore error like native parser 
> or add items to Issues pan like several other IDEs?

Yes, it tries to do that, but the range conversion is "a bit" buggy. Feel free 
to fix it :)

> 4) Clang is slow, so it's better to document any optimization idea at 
> qt-project wiki.
>  - Pch still not used; and there can be some problems with reading previously 
> generated *.pch - i've seen a few posts on stackoverflow and failed to read 
> generated pch myself.

Long story short: I'll put in the option to use a pch with libclang back in 
later.

>  - Higlighting can be done for visible area first, as Eric mentioned once in 
> this maillist

Slightly tricky because of the way highlighting is handled in the text editor 
(because of performance).

>  - When user starts typing characters sequence that can be identifier, IDE 
> can take document snapshot, ask completions at position before first 
> character and show proposals immediately after 1) they will be ready 2) user 
> will enter 2-3 characters. Seems XCode uses this trick.

Interestring.. I'll take another look at Xcode.

> 5) Real optimizations can be done only in clang, but interesting directions 
> can be mentioned at wiki too
>  - Now QtCreator replaces dot with arrow for pointer types, but it cannot be 
> done through clang-c API without big overhead. Similar features: replace dot 
> with :: for namespaces/type names; show mixed proposals for smart pointers

I had a patch to do the access-operator hinting in libclang, but it's kinda 
very stale. I might revive that in the near future.

>  - Despite that incremental compilation of C++ is horrible challenge, clang 
> developers mentioned: „that's certainly a long-term goal“

Yes, I'm aware of that.

-- Erik.
_______________________________________________
Qt-creator mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/qt-creator

Reply via email to