Difference between revisions of "Developer documentation"
m (→Plug-In development: add two links to codecompletion) |
(Added my mirror of Code::Blocks to the list) |
||
(38 intermediate revisions by 9 users not shown) | |||
Line 2: | Line 2: | ||
[[Category:Developer Documentation]] | [[Category:Developer Documentation]] | ||
{{Layout_box2|1= | {{Layout_box2|1= | ||
− | '''Code repository'''<br/> | + | '''Official Code repository Subversion'''<br/> |
− | * Web-interface by ViewVC: http://svn. | + | * Web-interface by ViewVC: http://sourceforge.net/p/codeblocks/code/log/ |
− | * Subversion URL: <nowiki>http:// | + | * Subversion URL: <nowiki>svn://svn.code.sf.net/p/codeblocks/code/trunk</nowiki> or <nowiki>http://svn.code.sf.net/p/codeblocks/code/trunk</nowiki> |
+ | |||
+ | '''Mirror by Carsten Arnholm''' (Read-only; ) | ||
+ | * Web-interface: https://github.com/arnholm/codeblocks_sfmirror | ||
+ | * Git URL: see the above page. | ||
+ | |||
+ | '''Mirror by Michael Agarkov''' (Read-only) | ||
+ | * Web-interface: https://michaelagarkov.ru/MichaelAgarkov/codeblocks | ||
+ | * Git URL: see the above page. | ||
+ | |||
+ | '''Mirror by biplab''' (Read-only; refreshed every 10 minutes. As 2022-09-12, it looks dead.) | ||
+ | * Subversion URL: <nowiki>svn://cb.biplab.in/codeblocks/trunk</nowiki><br/> | ||
+ | * Web-interface: http://cb.biplab.in/websvn/ | ||
+ | * Git URL: git://cb.biplab.in/codeblocks.git | ||
+ | * Web-interface:http://cb.biplab.in/cgit/ | ||
+ | |||
+ | '''Mirror by Jens''' (Read-only; refreshed every 10 minutes. As 2022-09-12, it looks dead.) | ||
+ | * Web-interface: http://cgit.jenslody.de/ | ||
+ | * Git URL: git://jenslody.de/git/codeblocks | ||
+ | * the above Web-interface link contains many other mirrors such as wxWidgets trunk, git mirror, and git mirror of codeblocks.github | ||
+ | |||
+ | '''Mirror by Obf''' (Read-only; refreshed manually. As 2022-09-12, it looks dead.) | ||
+ | * Web-interface: https://github.com/obfuscated/codeblocks_sf | ||
+ | * Git URL: see the above page. | ||
}} | }} | ||
+ | |||
'''Articles for Code::Blocks developers.''' | '''Articles for Code::Blocks developers.''' | ||
− | * '''[http:// | + | * '''<u>Documentation</u>''' |
+ | :[https://www.codeblocks.org/manual.shtml User's manual] in various formats and languages. | ||
+ | :Browse SDK documentation at http://alpha0010.github.io/cb-docs/ as html. | ||
+ | |||
+ | * Compile the complete Code::Blocks from sources on '''[[Installing Code::Blocks from source on Windows|Windows]]''' and '''[[Installing Code::Blocks from source on Linux|Linux]]''' | ||
+ | |||
+ | * '''[[Compile Code::Blocks plugins based on a nightly]]''' without the need to compile wxWidgets or the Code::Blocks core. | ||
+ | |||
:Code::Blocks uses Launchpad to coordinate translation efforts. | :Code::Blocks uses Launchpad to coordinate translation efforts. | ||
+ | * '''[http://launchpad.net/products/codeblocks/ Old Translation page]''' | ||
+ | * '''[http://launchpad.net/products/codeblocks-gd/ New Translation page]''' | ||
+ | :See also [https://forums.codeblocks.org/index.php/topic,1022.msg159075.html#msg159075 Code::Blocks' translation] | ||
* '''[[Coding style]]''' | * '''[[Coding style]]''' | ||
Line 18: | Line 52: | ||
:How to add support for new syntax lighting schemes. | :How to add support for new syntax lighting schemes. | ||
− | * '''[[Creating a patch to submit | + | * '''[[Creating a patch to submit (Patch Tracker)]]''' |
:Creating a diff file and then submitting it to the patch tracker. | :Creating a diff file and then submitting it to the patch tracker. | ||
Line 39: | Line 73: | ||
:Description of the format of each file Code::Blocks produces. | :Description of the format of each file Code::Blocks produces. | ||
− | * ''' | + | * '''[[Version control]]''' |
− | : | + | :Tips and trick for working with our version control system. |
− | |||
== Plug-In development == | == Plug-In development == | ||
+ | * [[Plugin structure of C::B]] | ||
* [[Creating a simple "Hello World" plugin]] | * [[Creating a simple "Hello World" plugin]] | ||
* [[Creating a Plug-in which modifies CB's Menus]] | * [[Creating a Plug-in which modifies CB's Menus]] | ||
Line 54: | Line 88: | ||
* [[wxSmith extensions]] | * [[wxSmith extensions]] | ||
− | * [[Code::Completion Rewrite]] and [[Code Completion plugin]] | + | * [[Code::Completion Rewrite]] and [[Code Completion plugin]] and [[Code Completion Design]] |
== Scripting == | == Scripting == | ||
Line 61: | Line 95: | ||
* [[Wizard scripts|Creating a new project wizard]] | * [[Wizard scripts|Creating a new project wizard]] | ||
+ | |||
+ | == Developing C::B with Git == | ||
+ | For devs who want to use Git to develop C::B, here are some steps to follow, especially you need to correctly set the SVN and GIT properties so that you can make your local git commits back to the official SVN repo. See [https://forums.codeblocks.org/index.php/topic,16096.msg128152.html#msg128152 Re: Read-only Git, SVN Repo for Code::Blocks], also stahta01 has a nice instruction about how to use git, see [https://forums.codeblocks.org/index.php/topic,19533.msg133422.html#msg133422 Development How to use a Code::Blocks Git Repo]. | ||
+ | |||
+ | If you want to create a SVN style patch from git, see: [https://forums.codeblocks.org/index.php/topic,19391.msg132530.html#msg132530 This forum post]. | ||
+ | |||
+ | It's possible to build Code::Blocks through GitHub Actions, see [https://wiki.codeblocks.org/index.php/Building_Code::Blocks_through_GitHub_Actions Building Code::Blocks through GitHub Actions]. | ||
+ | |||
+ | == Debugging C::B == | ||
+ | |||
+ | * When C::B crashes, it will generate a call-stack file "codeblocks.RPT", at the crash point (see [[FAQ-Compiling_(general)#Q: How do I report a compilation problem on the forums?|this]] for more information). This is a text file that you can open; if your C::B contains the debug information, it will have file and line information about each call. If your C::B is a stripped version, but you have the debug version of C::B, you can try to run the [https://forums.codeblocks.org/index.php/topic,13129.msg88254.html#msg88254 Debugging made easier], this is an address2line UI interface that works under Windows. | ||
+ | * You can debug C::B under C::B (with the debugger plugin), also, you can link C::B to the debug version of wxWidgets library, so you can see whether a bug is located in C::B source code or wxWidgets' source code, see here: [https://forums.codeblocks.org/index.php/topic,17316.msg130972.html#msg130972 patch to build C::B against wx debug library] |
Revision as of 20:02, 20 November 2024
Official Code repository Subversion
- Web-interface by ViewVC: http://sourceforge.net/p/codeblocks/code/log/
- Subversion URL: svn://svn.code.sf.net/p/codeblocks/code/trunk or http://svn.code.sf.net/p/codeblocks/code/trunk
Mirror by Carsten Arnholm (Read-only; )
- Web-interface: https://github.com/arnholm/codeblocks_sfmirror
- Git URL: see the above page.
Mirror by Michael Agarkov (Read-only)
- Web-interface: https://michaelagarkov.ru/MichaelAgarkov/codeblocks
- Git URL: see the above page.
Mirror by biplab (Read-only; refreshed every 10 minutes. As 2022-09-12, it looks dead.)
- Subversion URL: svn://cb.biplab.in/codeblocks/trunk
- Web-interface: http://cb.biplab.in/websvn/
- Git URL: git://cb.biplab.in/codeblocks.git
- Web-interface:http://cb.biplab.in/cgit/
Mirror by Jens (Read-only; refreshed every 10 minutes. As 2022-09-12, it looks dead.)
- Web-interface: http://cgit.jenslody.de/
- Git URL: git://jenslody.de/git/codeblocks
- the above Web-interface link contains many other mirrors such as wxWidgets trunk, git mirror, and git mirror of codeblocks.github
Mirror by Obf (Read-only; refreshed manually. As 2022-09-12, it looks dead.)
- Web-interface: https://github.com/obfuscated/codeblocks_sf
- Git URL: see the above page.
Articles for Code::Blocks developers.
- Documentation
- User's manual in various formats and languages.
- Browse SDK documentation at http://alpha0010.github.io/cb-docs/ as html.
- Compile Code::Blocks plugins based on a nightly without the need to compile wxWidgets or the Code::Blocks core.
- Code::Blocks uses Launchpad to coordinate translation efforts.
- See also Code::Blocks' translation
- The source code formatting style used in the Code::Blocks' source.
- How to add support for new syntax lighting schemes.
- Creating a diff file and then submitting it to the patch tracker.
- Information about unicode standards and how unicode is handled in Code::Blocks' source code.
- List of various development tips for Code::Blocks.
- Information about scripting Code::Blocks with Squirrel.
- Information about the architecture of Code::Blocks.
- Information about the Code::Blocks SDK events and how to work with them.
- Description of the format of each file Code::Blocks produces.
- Tips and trick for working with our version control system.
Plug-In development
- Plugin structure of C::B
- Creating a simple "Hello World" plugin
- Creating a Plug-in which modifies CB's Menus
- Creating a plugin that actually does something
- Linking the plugin to a Nightly Build
- Managing Plug-in Resources
Scripting
Using scripting to extend Code::Blocks' functionality
Developing C::B with Git
For devs who want to use Git to develop C::B, here are some steps to follow, especially you need to correctly set the SVN and GIT properties so that you can make your local git commits back to the official SVN repo. See Re: Read-only Git, SVN Repo for Code::Blocks, also stahta01 has a nice instruction about how to use git, see Development How to use a Code::Blocks Git Repo.
If you want to create a SVN style patch from git, see: This forum post.
It's possible to build Code::Blocks through GitHub Actions, see Building Code::Blocks through GitHub Actions.
Debugging C::B
- When C::B crashes, it will generate a call-stack file "codeblocks.RPT", at the crash point (see this for more information). This is a text file that you can open; if your C::B contains the debug information, it will have file and line information about each call. If your C::B is a stripped version, but you have the debug version of C::B, you can try to run the Debugging made easier, this is an address2line UI interface that works under Windows.
- You can debug C::B under C::B (with the debugger plugin), also, you can link C::B to the debug version of wxWidgets library, so you can see whether a bug is located in C::B source code or wxWidgets' source code, see here: patch to build C::B against wx debug library