1. 14 Apr, 2019 4 commits
    • Milian Wolff's avatar
      Also find clang include path based on runtime libclang library path · bc13f955
      Milian Wolff authored
      My KDevelop was compiled against my system libclang v7.0.1, thus
      KDEV_CLANG_BUILTIN_DIR points to /usr/lib/clang/7.0.1/include. Now
      I compiled clang 8 from sources and put it in a different folder
      in my home path and adapted LD_LIBRARY_PATH to make KDevelop pick it
      up. This then fails to find the builtin include path, since it tries
      to find `/usr/lib/clang/8.0.1/include` which doesn't exit.
      This patch adds another fallback to fix the above scneario: We now
      lookup the path of libclang at runtime through dlfcn.h's dladdr,
      which we pass a libclang function address, here clang_getClangVersion.
      Then on success we deduce the include path by removing the library
      name and then instead appending `clang/$version/include`, which makes
      it use /home/milian/projects/compiled/other/lib/clang/8.0.1/include
      as required.
    • Milian Wolff's avatar
      clang: add new (partially failing) test file for lambdas · c88bf19b
      Milian Wolff authored
      We apparently fail to build uses for lambda captures using
      C++14 `identifier initializer` statements. Turns out that the
      init-capture isn't visited by libclang, see also:
    • Milian Wolff's avatar
      Simplify setting custom parser args for unit tests · d8119c13
      Milian Wolff authored
      Make it possible to add parser args from a background provider and
      share the test provider implementation.
    • Milian Wolff's avatar
      clang: fix functions.cpp test · bbb42a2f
      Milian Wolff authored
      Potentially this got fixed/changed by a newer clang version
  2. 13 Apr, 2019 1 commit
  3. 09 Apr, 2019 1 commit
  4. 02 Apr, 2019 1 commit
  5. 01 Apr, 2019 2 commits
  6. 31 Mar, 2019 1 commit
  7. 25 Mar, 2019 4 commits
  8. 20 Mar, 2019 2 commits
    • Thibault North's avatar
      CMake: discover more unit tests · d5e3e27b
      Thibault North authored
      Discover unit-tests using bracket arguments and/or listed in
      files other than CTestTestFile.cmake:
      When using gtest_discover_tests(), add_test() directives are present
      in various .cmake files. To date, Kdevelop searches for unit-tests
      does not follow include() directives present in the main
      CTestTestfile.cmake, leading to no unit-tests being shown.
      Additionally, the bracket arguments of CMake is not enabled for
      parsing tests arguments.
      This patch enables them, and follows include() directives.
      Reviewers: apol, kfunk, mwolff
      Reviewed By: mwolff
      Subscribers: mwolff, kdevelop-devel
      Tags: #kdevelop
      BUG: 405225
      Differential Revision: https://phabricator.kde.org/D19673
    • Script Kiddy's avatar
      SVN_SILENT made messages (.desktop file) - always resolve ours · a19629cc
      Script Kiddy authored
      In case of conflict in i18n, keep the version of the branch "ours"
      To resolve a particular conflict, "git checkout --ours path/to/file.desktop"
  9. 19 Mar, 2019 1 commit
  10. 11 Mar, 2019 2 commits
  11. 08 Mar, 2019 2 commits
  12. 07 Mar, 2019 2 commits
  13. 02 Mar, 2019 1 commit
  14. 25 Feb, 2019 2 commits
  15. 24 Feb, 2019 1 commit
  16. 21 Feb, 2019 1 commit
    • Rolf Eike Beer's avatar
      optimize CMakeBuildDirChooser::buildDirSettings() · 5bf2c3aa
      Rolf Eike Beer authored
      -if we have a match for a key, no other key can match
      -match the start of a new line as QByteArray instead of QString, most lines will
       not match and all keys are plain ASCII, this saves a lot of needless
       conversions and memory allocations
      -modify the original line instead of doing a copy, the original one will not
       be used again anyway.
      Test Plan: Open and build a CMake-based project.
      Reviewers: mwolff
      Reviewed By: mwolff
      Subscribers: mwolff, apol, kdevelop-devel
      Tags: #kdevelop
      Differential Revision: https://phabricator.kde.org/D18857
  17. 19 Feb, 2019 3 commits
  18. 16 Feb, 2019 2 commits
  19. 15 Feb, 2019 7 commits
    • Milian Wolff's avatar
      Introduce QuickOpenEmbeddedWidgetCombiner · d284d5bb
      Milian Wolff authored
      This mouthful of a class is essentially just a QWidget with a
      QVBoxLayout which you can add widgets to. The fun comes from
      implementing the QuickOpenEmbeddedWidgetInterface too, by
      delegating to the child widgets that got added.
      Overall, this allows us to navigate via Alt+Arrow keyboard actions
      between combined widgets, as you'd get when you have both, an error
      and a declaration at a given cursor declaration.
    • Milian Wolff's avatar
      Add 'back' to QuickOpenEmbeddedWidgetInterface · 35277af9
      Milian Wolff authored
      The AbstractNavigationWidget already supported this, and it was
      picked up by KTextEditor. But our own quickopen embedded widget
      interface didn't allow going 'back' via Alt + Backspace yet. This
      patch fixes this.
    • Milian Wolff's avatar
    • Milian Wolff's avatar
      tie DUContext::createNavigationWidget to AbstractNavigationWidget · d9b4c14c
      Milian Wolff authored
      We always return instances of this type anyways, so enforce it in
      the API and simplify the usage code accordingly.
    • Milian Wolff's avatar
      Fix up/down keyboard navigation for 'Show documentation' links · f633da0d
      Milian Wolff authored
      The navigation widget relies on a crude HTML "parser" which
      counts "lines". Yes. Only '<br/>' is considered a newline, even
      though due to line wrapping we can have obviously more lines. Well,
      without rewriting all of that, also count '</p>' as introducing a
      new line. This allows us to jump to the 'Show documentation' link
      To make this work reliably, we also fixup the generated HTML to be
      valid and not nest '<p>' tags. Furthermore, we prevent the ugly
      line indication marker '<->' being shown when we try to down past
      the last paragraph.
    • Milian Wolff's avatar
      Lock duchain in AbstractIncludeNavigationContext::html · 38e910ba
      Milian Wolff authored
      Fixes assertion when trying to navigate in project file
      quick open navigation widget:
      #9  0x00007fc05e472c28 in qt_assert(char const*, char const*, int) () from /usr/lib/libQt5Core.so.5
      #10 0x00007fc061696c26 in KDevelop::TopDUContext::importedParentContexts (this=0x561284615030) at /home/milian/projects/kf5/src/extragear/kdevelop/kdevelop/kdevplatform/language/duchain/topducontext.cpp:1015
      #11 0x00007fc0617883cc in KDevelop::pickContextWithData (duchains=..., maxDepth=2, type=@0x561287177ac0: KDevelop::StandardParsingEnvironment, forcePick=true) at /home/milian/projects/kf5/src/extragear/kdevelop/kdevelop/kdevplatform/language/duchain/navigation/abstractincludenavigationcontext.cpp:60
      #12 0x00007fc061788815 in KDevelop::AbstractIncludeNavigationContext::html (this=0x561287177aa0, shorten=false) at /home/milian/projects/kf5/src/extragear/kdevelop/kdevelop/kdevplatform/language/duchain/navigation/abstractincludenavigationcontext.cpp:90
      #13 0x00007fc0617752fb in KDevelop::AbstractNavigationContext::down (this=0x561287177aa0) at /home/milian/projects/kf5/src/extragear/kdevelop/kdevelop/kdevplatform/language/duchain/navigation/abstractnavigationcontext.cpp:282
    • Milian Wolff's avatar
      cleanup: remove html prefix/suffix feature from navigation widget · 12e3583f
      Milian Wolff authored
      This was *only* being used by the project file quickopen feature,
      and you only saw it when clicking into the quickopen list, or when
      pressing alt. I doubt anyone ever did that. And it was madness
      anyways: we decreased the font size in a hacky non-html compliant
      way which actually made it quite hard to read for me. So the only
      thing we lose is the project name... which is an acceptable
      tradeoff. This feature messed up the whole API considerably, removing
      it makes me very happy.
      We can bring back the project name in the future by introducing a
      generic wrapper-widget that supports the