X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=Programming-Tips.md;h=d05c4b10d0988f1f4572311a6c38775982e7779a;hb=15091f9d26c060b72c64e63f08888e9fa5badab6;hp=4d67913185607ff76daef11d4d6b420d8399f6ce;hpb=45e8f57a01383e818c9c705f6455dc01d172072a;p=xonotic%2Fxonotic.wiki.git diff --git a/Programming-Tips.md b/Programming-Tips.md index 4d67913..d05c4b1 100644 --- a/Programming-Tips.md +++ b/Programming-Tips.md @@ -15,8 +15,11 @@ You can draw text anywhere on the map using `debug_text_3d(world_coords, message ### Multiple clients + clean config If you need 2 players for debugging, you can launch another client locally: - - use -sessionid (e.g. `./all run -sessionid testing`) to keep your config - - use -userdir (e.g. `./all run -userdir ~/.xonotic-testing +name tester +cl_allow_uid2name 0`) to get a clean config (`+cl_allow_uid2name 0` to avoid an annoying popup). You can set whatever cvar on start with `+cvar_name value`. +- use -sessionid (e.g. `./all run -sessionid testing`) to keep your config +- use -userdir (e.g. `./all run -userdir ~/.xonotic-testing +name tester +cl_allow_uid2name 0`) to get a clean config (if you delete the dir before each use) + - you can set any cvar or run any command on start with `+cvar_name value` + - `+name tester` avoids the nick selection dialog + - `+cl_allow_uid2name 0` avoids an annoying popup ### Testing with bots @@ -65,11 +68,17 @@ prvm_globalwatchpoint server prvm_edictwatchpoint server ``` +### Doxygen + +Incomplete [Doxygen documentation](https://timepath.github.io/scratchspace/index.html) is generated as part of CI on [xonotic-data.pk3dir](https://gitlab.com/xonotic/xonotic-data.pk3dir) - you can search functions, "classes", globals, etc. + +Note that it might be incomplete or incorrect because [Doxygen](https://www.doxygen.nl) doesn't understand all of QC's constructs and our code heavily uses macros. See the `doxygen` section of the [CI file](https://gitlab.com/xonotic/xonotic-data.pk3dir/blob/master/.gitlab-ci.yml) for details what's missing. + ### Tool to find C symbols, functions, declarations and definitions inside source code For this purpose it's possible to use a text-based tool called [Cscope](https://en.wikipedia.org/wiki/Cscope) together with a GUI (it can be either an application or a plugin for a text editor). -#### Download / Installation +##### Download / Installation * Download and install cscope with `pacman -S cscope` Windows users must download the Windows version of cscope from https://code.google.com/archive/p/cscope-win32/downloads and put it into the main xonotic repo directory. The mingw version can't be used as it puts Unix paths into the generated indices, making them unusable. @@ -82,7 +91,7 @@ Windows users must download the Windows version of cscope from https://code.goog * If you don't use Atom, you also need to copy ~~[cscope_createindex.sh](uploads/17c725e19be8f4935c30c2506e168405/cscope_createindex.sh)(old version)~~ [cscope_createindex.sh](uploads/451835f6b1894145af06050915256048/cscope_createindex.sh) into the main xonotic repo directory. -#### Configuration +##### Configuration * Configure your plugin if needed: * jEdit's CscopeFinder settings: @@ -105,7 +114,7 @@ Windows users must download the Windows version of cscope from https://code.goog * With Atom you can build cscope indices in the atom-cscope window (open with `Ctrl + Alt + o`) by clicking the flash icon. -#### Usage +##### Usage * jEdit: select a word in the editor, right-click and select "Find this C symbol" or another "Find ..." entry (if you don't see these entries you should add them in the context menu settings). * SublimeText: select a word in the editor, right-click and select "Look up symbol" or another "Look up ..." entry. @@ -114,5 +123,5 @@ Windows users must download the Windows version of cscope from https://code.goog ### QC syntax highlighting: -* For jEdit: [qc.xml](https://gitlab.com/terencehill/qc-syntax-highlighting-for-jedit/blob/master/qc.xml) -* For Kate: [qc.xml](https://gist.github.com/DefaultUser/998f030ab41a9e8edf4a9f8e703c6350) \ No newline at end of file +* terencehill's version for jEdit: [qc.xml](https://gitlab.com/terencehill/qc-syntax-highlighting-for-jedit/blob/master/qc.xml) +* EACFreddy's version for Kate: [qc.xml](https://gist.github.com/DefaultUser/998f030ab41a9e8edf4a9f8e703c6350) \ No newline at end of file