Skip to content
  • Héctor Mesa Jiménez's avatar
    split project settings into shared and local parts · 4a8234a4
    Héctor Mesa Jiménez authored
    When working with certain languages, it could be useful
    to keep the `.kateproject` file tracked by a VCS and share
    the global settings (just like .kateconfig). However, it
    is often needed to adapt that file in order to work in a
    local workspace (hard-coded paths for LSP, build, etc.),
    but right now you are forced to track the whole configuration
    or to keep `.kateproject` out from the repository.
    
    This patch allows to separate the project settings in two
    files: the shared one (the good old `.kateproject`), and
    a local one.
    
    When a `.kateproject` file is found, the plugin will look
    for the local file, and when found, its values will take
    preference.
    
    The file for the local part of the project settings follows
    the same convention than the project notes file:
    
    `.kateproject.local`
    
    If the value defined in the local part is an object, it will
    be merged with the object in `.kateproject`. Otherwise, the
    local value will override completely the shared value.
    
    One use case is to allow the LSP server to be aware of a
    python module installed only in a virtual environment.
    
    Since this changes uses the function to merge json object
    from the lspclient plugin, that function is moved to the
    shared folder. Tests in kate/autotest.
    4a8234a4