[Differential] [Request, 3,910 lines] D4672: Initial support for hookup of projects with general (web) services

Friedrich W. H. Kossebau noreply at phabricator.kde.org
Mon Feb 20 01:04:20 UTC 2017


kossebau created this revision.
Restricted Application added a subscriber: kdevelop-devel.

REVISION SUMMARY
  For a project there can be lots of other activities besides actual
  code development, building and running/debugging. There are
  things like issue tracking, task organization, schedules, CI servers,
  communication, documentation, localization, and more. Which usually
  are organized with central services, either accessed via web browsers
  or specific clients (e.g. irc, mailinglist).
  For more _I_ in IDE it would be attractive to integrate more with those
  services when useful.
  
  This patch adds a new lib KDevPlatformServices, to start support for
  connecting to such services and collecting any related classes & interfaces.
  Any plugin providing support for a given type of service would implement
  the new interface IProjectServiceHookup, next to IPlugin.
  The new plugin kdevprojectservicehookupmanager will collect any such
  plugins and enable to add to a project multiple hookup configurations
  using any of the available plugins.
  Each IProjectServiceHookup plugin would implement all kind of other
  interfaces, matching the capabilities of the respective service.
  And when their interface is used, they would respond using the
  respective configurations for the loaded projects.
  
  There are three service hookup plugins in this patch:
  
  - gitlab
  - phabricator
  - cgit
  
  Initially they all only implement the new IProjectServiceUrlMapper
  interface. This one maps urls to locations/items in services and
  locations/items in the local project. Initially this only covers
  getting matching urls for the current document + cursor position
  in a repo browsing service. The interface is planned to be extended
  to also cover the reverse and other items, like commits/change sets.
  
  A new plugin kdevprojectserviceurlmapper, also in this patch,  makes
  use of this interface and integrates a submenu into the editor context
  menu, to open for the curremt document and cursor position the matching
  link of a repo browsing service in the browser or at least copy the link
  to the clipboard, to use it e.g. in a chat.
  
  Future plans:
  Project providers, like the KDE provider, would automatically
  configure any known service hookup. No idea yet how to do that
  in a cross-plugin agnostic way. Unless the repo provider is
  part of a service suite, like github: there the provider plugin
  can be extended into a IProjectServiceHookup one and handle all
  this internally.

REPOSITORY
  R33 KDevPlatform

BRANCH
  addServiceLocationMapping

REVISION DETAIL
  https://phabricator.kde.org/D4672

AFFECTED FILES
  CMakeLists.txt
  plugins/CMakeLists.txt
  plugins/cgit/CMakeLists.txt
  plugins/cgit/Messages.sh
  plugins/cgit/cgithookupconfigpage.cpp
  plugins/cgit/cgithookupconfigpage.h
  plugins/cgit/cgithookupconfigpage.ui
  plugins/cgit/cgithookupconfiguration.cpp
  plugins/cgit/cgithookupconfiguration.h
  plugins/cgit/cgitplugin.cpp
  plugins/cgit/cgitplugin.h
  plugins/cgit/cgitplugin.json
  plugins/cgit/icons/96-apps-cgit.png
  plugins/cgit/icons/CMakeLists.txt
  plugins/cgit/projectvcstracker.cpp
  plugins/cgit/projectvcstracker.h
  plugins/gitlab/CMakeLists.txt
  plugins/gitlab/Messages.sh
  plugins/gitlab/gitlabhookupconfigpage.cpp
  plugins/gitlab/gitlabhookupconfigpage.h
  plugins/gitlab/gitlabhookupconfigpage.ui
  plugins/gitlab/gitlabhookupconfiguration.cpp
  plugins/gitlab/gitlabhookupconfiguration.h
  plugins/gitlab/gitlabplugin.cpp
  plugins/gitlab/gitlabplugin.h
  plugins/gitlab/gitlabplugin.json
  plugins/gitlab/icons/CMakeLists.txt
  plugins/gitlab/icons/sc-apps-gitlab.svg
  plugins/gitlab/projectvcstracker.cpp
  plugins/gitlab/projectvcstracker.h
  plugins/phabricator/CMakeLists.txt
  plugins/phabricator/Messages.sh
  plugins/phabricator/icons/CMakeLists.txt
  plugins/phabricator/icons/sc-apps-phabricator.svg
  plugins/phabricator/phabricatorhookupconfigpage.cpp
  plugins/phabricator/phabricatorhookupconfigpage.h
  plugins/phabricator/phabricatorhookupconfigpage.ui
  plugins/phabricator/phabricatorhookupconfiguration.cpp
  plugins/phabricator/phabricatorhookupconfiguration.h
  plugins/phabricator/phabricatorplugin.cpp
  plugins/phabricator/phabricatorplugin.h
  plugins/phabricator/phabricatorplugin.json
  plugins/phabricator/projectvcstracker.cpp
  plugins/phabricator/projectvcstracker.h
  plugins/projectservicemanager/CMakeLists.txt
  plugins/projectservicemanager/Messages.sh
  plugins/projectservicemanager/config/projectconfig.kcfg
  plugins/projectservicemanager/config/projectconfig.kcfgc
  plugins/projectservicemanager/config/projectconfigpage.cpp
  plugins/projectservicemanager/config/projectconfigpage.h
  plugins/projectservicemanager/config/projectconfigpage.ui
  plugins/projectservicemanager/config/projectservicehookuplistmodel.cpp
  plugins/projectservicemanager/config/projectservicehookuplistmodel.h
  plugins/projectservicemanager/kdevprojectservicehookupmanager.cpp
  plugins/projectservicemanager/kdevprojectservicehookupmanager.h
  plugins/projectservicemanager/kdevprojectservicehookupmanager.json
  plugins/projectserviceurlmapper/CMakeLists.txt
  plugins/projectserviceurlmapper/Messages.sh
  plugins/projectserviceurlmapper/kdevprojectserviceurlmapper.cpp
  plugins/projectserviceurlmapper/kdevprojectserviceurlmapper.h
  plugins/projectserviceurlmapper/kdevprojectserviceurlmapper.json
  services/CMakeLists.txt
  services/interfaces/iprojectservicehookup.cpp
  services/interfaces/iprojectservicehookup.h
  services/interfaces/iprojectservicehookupconfiguration.cpp
  services/interfaces/iprojectservicehookupconfiguration.h
  services/interfaces/iprojectserviceurlmapper.cpp
  services/interfaces/iprojectserviceurlmapper.h
  services/interfaces/projectservicehookupconfigpage.cpp
  services/interfaces/projectservicehookupconfigpage.h

EMAIL PREFERENCES
  https://phabricator.kde.org/settings/panel/emailpreferences/

To: kossebau, #kdevelop
Cc: kdevelop-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20170220/710fce7d/attachment.html>


More information about the KDevelop-devel mailing list