Kdevelop4: Beyond C++...
extending the Language Base
KDevelop ... A Superb IDE in the
●History and the road map of Kdevelop.
●Good Code Completion
●Great Code Navigation and features powered by Definition
●Efficient memory management.
●The stats say it:
The Current Languages Support Status
○Source Code Formatter
○ANTLR Language parser
○Source Code Formatter
Face-Off : Kick-Starting the Pre-
●a working checkout of KDE4 and Kdevelop4
●The Lexer needs to be implemented/written
●The Parser Needs to be in shape.
○What should the grammar look like?
●Parser Generators could be used Or a hand written pasrer.
●Kdev-Pg is a handy tool.
○Kdev-PG!! what is Kdev-Pg ?
○What is fed into it ? How do i use it?
○What does it produce? How do i use the output
○What might be the shortcomings of using a parser-
Diving into the language support.
●Done with the parser for the language; what next?
○Test, Test & Test again.
●Write the Languagesupport headers and implementaions.
○derived from Iplugin and Ilanguagesupport
○can effectively use slots and signals to manage changes
in the document status.
■The parsejob used by the the background parser to
parse a given file.
■The name of the language
■The language being used.
●The Language ParseJob:
○Instigates the background parser, parse session and DU
Chain for the document.
DU aka Definition Use Chain: the key to
●What is the Fuss all about?
●How does it work?
●What does it produce?
●What use it is?
●Extending the use beyond C++.
●Viewing the outputs for it.
Extensions required in DUchain.
● EditorIntegrator implementation
○provides methods to integrate a text editor component
○helps locate the position/range of the tokens.
Putting the DUChain output in Use.
●The DUChain has been built.
●Use it for:
○Advanced Syntax Highlighting
○and many other features
●PS: Only Syntax highlighting has been implemented for
python by me.
●Advanced Syntax Highlighting
○adding custom coloring to declarations/definitions & uses.
●Current DU Chain architecture that might make the use
Show .... Don't Tell
Working demonstrations, from my work on adding Python to
●Executing a working copy of Kdevelop4.
●See the Python Plug-in in action, when a file is loaded.
○On the terminal debug messages.
●The DUChain works and shows the contexts created when
a file is loaded.
○As a Kdevelop4 Widget.
●The Extended Code Highlighting after a *.py has been
Acknowledgments & References:
●KDE 4 API reference available at
●Python plug-in code for KDevelop4 available at
●The C# & Java plug-ins for KDevelop4
●Kdevelop 4 API reference available at