• Project Plugin, Current State

    by  • August 21, 2012 • Common, Developers, KDE, Users • 6 Comments

    After some days of more hacking on the plugin, there current state is already nice for my daily use.

    A simple file like

    {
         "name": "Kate"
       , "files": [ { "git": 1 } ]
    }

    defines already the complete project for the kate.git.

    If you open any file with Kate inside your local kate.git clone (and the project plugin from master branch is loaded), Kate will auto-open the project and highlight the file you just opened there in the tree. No need to think about opening some project in the menu, just open the file you want to start working at and start. The project plugin won’t get into your way or require additional steps.

    It will allow you nice and fast file switching between your project files in the filesystem tree like structure without any noise of non-git tracked files ;) Still the normal “Documents” view is around like it used to be, if you want to just navigate between currently opened files.

    If you modify the project file, the project will auto-refresh itself, still a reload button is needed to trigger e.g. reparsing of git files, if your add/remove files and want a fresh project tree. The auto-reload won’t help there, as is is more or less a nop if the project file content was unchanged.

    The “Search and Replace” plugin will integrate nicely and per default will do project wide searches, if any project is currently active (you can switch to other search modes like before in the combobox, just the default is changed, if the project plugin is active). Thanks to Kåre’s nice design of the plugin, this addition was really easy to implement.

    Exuberant Ctags integration is work-in-progress. At the moment on project load, a background thread will generate a ctags index (after it has constructed the file tree from git/svn/…) and the auto-completion will use this index for all files associated with your project. An additional toolview, that allows you to search inside the index will be implemented, too. It is a bit like the current ctags plugin, but without any setup or manual indexing ;) For the kate.git, the indexing (in the background) needs less than half second, even for kdelibs frameworks branch it is only 2-3 seconds. On Kate exit the index files (created as temp files in your local temp directory) will vanish again. No index database polluting your checkouts/clones or homes.

    Will try to add more features I like for my daily work, if you have any ideas to improve the plugin, just let me know here or on bugs.kde.org ;)

    About

    Dr.-Ing. Christoph Cullmann is a Senior Software Engineer at AbsInt Angewandte Informatik GmbH. His work is focused on static analysis of both binary and source programs and the WCET analysis of embedded systems. In his spare time, he works on the KDE project and maintains the Kate editor application and component.

    http://cullmann.io/

    6 Responses to Project Plugin, Current State

    1. Benny
      August 29, 2012 at 21:13

      That sounds great!
      Especially the auto-completion with ctags-indices seems very useful to me.

      What I would like to have is some kind of project-specific generic “Actions” (or “Launchers”).
      For example to run an application with a given set of parameters (like “./someApp –param1 –param2″)
      where I can choose the name and working directory for this action.

    2. Bastian
      September 8, 2012 at 10:44

      Is it already publicated somewhere? If yes, where can i find it?

      • September 9, 2012 at 13:57

        Just read the “Get It!” guide on this website, the plugin is in kate.git, master branch.

        • Bastian
          September 13, 2012 at 21:01

          Thanks!

    3. Bastian
      September 13, 2012 at 22:05

      Well i cannot build it..I got an error:

      rzempek:/home/grzempek/Pobieranie/kate/kate/plugins/project# cmake . -DCMAKE_MODULE_PATH:PATH=/usr/share/kde4/apps/cmake/modules/
      CMake Error at CMakeLists.txt:4 (macro_optional_find_package):
      Unknown CMake command “macro_optional_find_package”.

      dpkg -l |grep kdelibs
      ii kdelibs 4:3.5.10.dfsg.1-5 all core libraries from the official KDE release
      ii kdelibs-bin 4:4.8.4-3 i386 core executables for KDE Applications
      ii kdelibs-data 4:3.5.10.dfsg.1-5 all core shared data for all KDE applications
      ii kdelibs4c2a 4:3.5.10.dfsg.1-5 i386 core libraries and binaries for all KDE applications
      ii kdelibs5-data 4:4.8.4-3 all core shared data for all KDE Applications
      ii kdelibs5-dev 4:4.8.4-3 i386 development files for the KDE Development Platform libraries
      ii kdelibs5-plugins 4:4.8.4-3 i386 core plugins for KDE Applications

      Any suggestions?

    4. Bastian
      September 15, 2012 at 01:39

      Ok, i followed all steps in ‘Get In’ section(except run.sh script becouse i got errors). I have kate compiled, i can run it, but therre is no plugins at all… What else should i do? I thought that im compiling kate with all plugins thats avaiable??