Warning, /utilities/kate/addons/project/kateproject.example is written in an unsupported language. File is not indexed.
0001 /// This struct describes in almost-C++ the json data structure as expected by the
0002 /// project plugin.
0003 /// The json file has to be named ".kateproject".
0004 struct
0005 {
0006 /// name of the project
0007 string name;
0008
0009 /// The "directory" is optional.
0010 /// It is probably only useful for the kate-project-generator in cmake (>= 3.0.0).
0011 /// If set, the directory given here is used as the base directory for the project.
0012 /// Otherwise, the directory in which the project file is located as the base directory.
0013 string directory;
0014
0015 /// "exclude_patterns" is a list of regex patterns than can be used to exclude folders and files from the project tree
0016 vector< string > exclude_patterns;
0017
0018 /// The "files" struct describes which files belong to the project.
0019 /// There are five miutually exclusive methods to do this.
0020 struct files
0021 {
0022 /// "directory" is the files directory. If it is empty, the project base directory
0023 /// will be used. If it is a relative path, it is appended to the project
0024 /// base directory. Absolute paths work too.
0025 string directory;
0026
0027 /// If "git" is set to "1", the list of files is retrieved by running git in the files directory.
0028 bool git;
0029
0030 /// If "hg" is set to "1", the list of files is retrieved by running hg (mercurial) in the files directory.
0031 bool hg;
0032
0033 /// If "svn" is set to "1", the list of files is retrieved by running svn (subversion) in the files directory.
0034 bool svn;
0035
0036 /// If "fossil" is set to "1", the list of files is retrieved by running fossil in the files directory.
0037 bool fossil;
0038
0039 /// "list" can be set to a list of files.
0040 vector< string > list;
0041
0042 /// If nothing of the above has been set, "filters" can be set to a list of globbing expressions, which
0043 /// will be executed in the files directory.
0044 vector< string > filters;
0045
0046 /// If "recursive" is set to 1, the globbing expressions in filters are executed recursively in the directory tree.
0047 bool recursive;
0048
0049 /// If "hidden" is set to 1, hidden files will be retrieved. Only affects directories not managed by version control.
0050 bool hidden;
0051 };
0052
0053 /// The "build" structure is optional.
0054 /// If set, its contents are used by the build plugin in kate.
0055 /// "targets", "default_target" and "clean_target" are supported starting with kate 4.13.
0056 /// The "build", "clean" and "quick" fields are only used if "targets" is empty.
0057 /// They servce for backward compatibility with the build plugin < 4.13, or they can
0058 /// be used as a quicker way to set up projects with up to 3 targets.
0059 struct build
0060 {
0061 /// The build directory
0062 string directory;
0063
0064 /// "targets" contains a vector of targets (as in a makefile). Each target has a name
0065 /// a build command and a run command. The commands are executed in the build directory.
0066 vector< {string name, string build_cmd, string run_cmd} > targets;
0067
0068 /// "default_target" must be set to one of the target names in "targets". This is the target
0069 /// which will be built by the "Build default target" action of the build plugin.
0070 string default_target;
0071
0072 /// "clean_target" must be set to one of the target names in "targets". This is the target
0073 /// which will be built by the "Build clean target" action of the build plugin.
0074 string clean_target;
0075
0076 /// Creates a target names "build" with the given command.
0077 string build;
0078
0079 /// Creates a target names "clean" with the given command.
0080 string clean;
0081
0082 /// Creates a target names "quick" with the given command.
0083 string quick;
0084
0085 };
0086
0087 /// The "ctags" structure is optional.
0088 /// If set, it may contain extra options for ctags command used to populate the auto completion popup in Kate.
0089 struct ctags
0090 {
0091 /// If "enable" is set to "1", a ctags index file is generated.
0092 /// If not present, generation of index depends on project plugin setting.
0093 bool enable;
0094
0095 /// "options" can be set to a list of ctags options. You may need to escape character "\".
0096 vector< string > options;
0097
0098 /// "index_file" can be set to path of ctags file to generate.
0099 /// A relative path is wrt to the project base directory.
0100 string index_file;
0101 }
0102
0103 };
0104
0105
0106
0107 Simple example, get files via globbing recursively in doc/, no build plugin:
0108
0109 {
0110 "name": "MyProject",
0111 "files": [ {
0112 "directory": "doc",
0113 "filters": ["*.tex", "Makefile"],
0114 "recursive": 1
0115 } ]
0116 }
0117
0118
0119 A project for a custom language named Swine whose source files have a suffix .swn:
0120
0121 {
0122 "name": "Custom",
0123 "files": [ {
0124 "directory": ".",
0125 "filters": ["*.swn"],
0126 "recursive": 1
0127 } ],
0128 "exclude_patterns": [ "build" ],
0129 "ctags": {
0130 "options": [
0131 "--langdef=swine",
0132 "--langmap=swine:.swn",
0133 "--regex-swine=/^def[ \t]*([a-zA-Z0-9_]+)/\\1/d,definition/"
0134 ]
0135 }
0136 }
0137
0138
0139 A more advanced project file, get the files from svn, set up three commands for the build plugin:
0140
0141 {
0142 "name": "Foo",
0143 "files": [ { "svn" : 1 } ],
0144
0145 "build": {
0146 "directory": "build",
0147 "build": "make all -j4",
0148 "clean": "make clean",
0149 "quick": "make install"
0150 }
0151 }
0152
0153
0154 An out-of-source project file as generated by cmake: it points to the actual project directory,
0155 it retrieves the file list from git, and a long list of targets for the build plugin:
0156
0157
0158 {
0159 "name": "CMake@build",
0160 "directory": "/home/neundorf/src/CMake/cmake",
0161 "files": [ { "git": 1 } ],
0162 "build": {
0163 "directory": "/home/neundorf/src/CMake/build",
0164 "default_target": "all",
0165 "clean_target": "clean",
0166 "targets":[
0167 { "name":"all", "build_cmd":"/usr/bin/gmake -C /home/neundorf/src/CMake/build -j8 all" },
0168 { "name":"clean", "build_cmd":"/usr/bin/gmake -C /home/neundorf/src/CMake/build -j8 clean" },
0169 { "name":"cmLocalGenerator.cxx.o", "build_cmd":"/usr/bin/gmake -C /home/neundorf/src/CMake/build/Source -j8 cmLocalGenerator.cxx.o" },
0170 { "name":"cmLocalGenerator.cxx.i", "build_cmd":"/usr/bin/gmake -C /home/neundorf/src/CMake/build/Source -j8 cmLocalGenerator.cxx.i" },
0171 ...
0172 { "name":"cmLocalGenerator.cxx.s", "build_cmd":"/usr/bin/gmake -C /home/neundorf/src/CMake/build/Source -j8 cmLocalGenerator.cxx.s" },
0173 { "name":"cmMakefile.cxx.o", "build_cmd":"/usr/bin/gmake -C /home/neundorf/src/CMake/build/Source -j8 cmMakefile.cxx.o" },
0174 { "name":"cmMakefile.cxx.i", "build_cmd":"/usr/bin/gmake -C /home/neundorf/src/CMake/build/Source -j8 cmMakefile.cxx.i" },
0175 { "name":"cmMakefile.cxx.s", "build_cmd":"/usr/bin/gmake -C /home/neundorf/src/CMake/build/Source -j8 cmMakefile.cxx.s" }
0176 ] }
0177 }