HOME

TheInfoList



OR:

KDevelop is a
free and open-source Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the sour ...
integrated development environment An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of at least a source code editor, build automation tools a ...
(IDE) for
Unix-like A Unix-like (sometimes referred to as UN*X or *nix) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix- ...
computer
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also ...
s and
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for se ...
. It provides
editing Editing is the process of selecting and preparing written, photographic, visual, audible, or cinematic material used by a person or an entity to convey a message or information. The editing process can involve correction, condensation, or ...
, navigation and
debugging In computer programming and software development, debugging is the process of finding and resolving '' bugs'' (defects or problems that prevent correct operation) within computer programs, software, or systems. Debugging tactics can involve i ...
features for several
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
s, and integration with build automation and version-control systems, using a plugin-based architecture. KDevelop 5 has
parser Parsing, syntax analysis, or syntactic analysis is the process of analyzing a string of symbols, either in natural language, computer languages or data structures, conforming to the rules of a formal grammar. The term ''parsing'' comes from La ...
backends for C, C++,
Objective-C Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. Originally developed by Brad Cox and Tom Love in the early 1980s, it was selected by NeXT for its NeX ...
,
OpenCL OpenCL (Open Computing Language) is a framework for writing programs that execute across heterogeneous platforms consisting of central processing units (CPUs), graphics processing units (GPUs), digital signal processors (DSPs), field-p ...
and
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of websites use JavaScript on the client side for webpage behavior, ofte ...
/ QML, with plugins supporting
PHP PHP is a general-purpose scripting language geared toward web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by The PHP Group. ...
,
Python 3 The programming language Python was conceived in the late 1980s, and its implementation was started in December 1989 by Guido van Rossum at CWI in the Netherlands as a successor to ABC capable of exception handling and interfacing with the ...
and
Ruby A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sap ...
. Basic
syntax highlighting Syntax highlighting is a feature of text editors that are used for programming, scripting, or markup languages, such as HTML. The feature displays text, especially source code, in different colours and fonts according to the category of terms. ...
and
code folding Code or text folding, or less commonly holophrasting, is a feature of some graphical user interfaces that allows the user to selectively hide ("fold") or display ("unfold") parts of a document. This allows the user to manage large amounts of text ...
are available for dozens of other
source-code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the w ...
and markup formats, but without semantic analysis. KDevelop is part of the
KDE KDE is an international free software community that develops free and open-source software. As a central development hub, it provides tools and resources that allow collaborative work on this kind of software. Well-known products include the ...
project, and is based on
KDE Frameworks KDE Frameworks is a collection of libraries and software frameworks readily available to any Qt-based software stacks or applications on multiple operating systems. Featuring frequently needed functionality solutions like hardware integration, ...
and Qt. The C/C++ backend uses
Clang Clang is a compiler front end for the C, C++, Objective-C, and Objective-C++ programming languages, as well as the OpenMP, OpenCL, RenderScript, CUDA, and HIP frameworks. It acts as a drop-in replacement for the GNU Compiler Collection (GCC) ...
to provide accurate information even for very complex codebases.


History

KDevelop 0.1 was released in 1998, with 1.0 following in late 1999. 1.x and 2.x were developed over a period of four years from the original codebase. It is believed that Sandy Meier originated KDevelop. Ralf Nolden is also known to be an early developer of the project. In 1998 Sandy Meier started KDevelop and worked 8 weeks alone on this project. Since then, the KDevelop IDE is publicly available under the GPL and supports many programming languages. Bernd Gehrmann started a complete rewrite and announced KDevelop 3.x in March 2001. Its first release was together with K Desktop Environment 3.2 in February 2004, and development of KDevelop 3.x continued until 2008. KDevelop 4.x, another complete rewrite with a more object-oriented programming model, was developed from August 2005 and released as KDevelop 4.0.0 in May 2010. The last feature update of this branch was version 4.7.0 in September 2014, with bugfix releases continuing until KDevelop 4.7.4 in December 2016 KDevelop 5 development began in August 2014 as a continuation of the 4.x codebase, ported to Qt5 and KDE Frameworks 5. The custom C++ parser used in earlier versions, which had poor support for C++11 syntax, was replaced by a new Clang-based backend. The integrated CMakeFile interpreter was also removed in favour of
JSON JSON (JavaScript Object Notation, pronounced ; also ) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other s ...
metadata Metadata is " data that provides information about other data", but not the content of the data, such as the text of a message or the image itself. There are many distinct types of metadata, including: * Descriptive metadata – the descriptive ...
produced by the upstream CMake tool. Semantic language support was added for QML and JavaScript, using the parser from
Qt Creator Qt Creator is a cross-platform C++, JavaScript and QML integrated development environment (IDE) which simplifies GUI application development. It is part of the SDK for the Qt GUI application development framework and uses the Qt API, whi ...
, alongside a new
QMake qmake is a utility that automates the generation of makefiles. Makefiles are used by the program make to build executable programs from source code; therefore qmake is a make-makefile tool, or '' makemake'' for short. The makefiles that qmake p ...
project-manager backend. The first stable 5.x release was KDevelop 5.0.0 in August 2016. In October 2016, official Microsoft Windows builds were released for the first time.


Features

KDevelop uses an embedded
text editor A text editor is a type of computer program that edits plain text. Such programs are sometimes known as "notepad" software (e.g. Windows Notepad). Text editors are provided with operating systems and software development packages, and can be us ...
component through the
KParts KDE Frameworks is a collection of libraries and software frameworks readily available to any Qt-based software stacks or applications on multiple operating systems. Featuring frequently needed functionality solutions like hardware integration, f ...
framework. The default editor is KDE Advanced Text Editor, which can optionally be replaced with a Qt Designer-based editor. This list focuses on the features of KDevelop itself. For features specific to the editor component, see the article on
Kate Kate name may refer to: People and fictional characters * Kate (given name), a list of people and fictional characters with the given name or nickname * Gyula Káté (born 1982), Hungarian amateur boxer * Lauren Kate (born 1981), American aut ...
. *
Source code editor A source-code editor is a text editor program designed specifically for editing source code of computer programs. It may be a standalone application or it may be built into an integrated development environment (IDE) or web browser. Source-code ed ...
with
syntax highlighting Syntax highlighting is a feature of text editors that are used for programming, scripting, or markup languages, such as HTML. The feature displays text, especially source code, in different colours and fonts according to the category of terms. ...
and automatic
indentation __FORCETOC__ In the written form of many languages, an indentation or indent is an empty space at the beginning of a line to signal the start of a new paragraph. Many computer languages have adopted this technique to designate "paragraphs" or ...
(Kate). * C/C++ language is now supported with a Clang's backend (as of KDevelop-5.0) * Project management for different project types, such as
Automake In software development, GNU Automake is a programming tool to automate parts of the compilation process. It eases usual compilation problems. For example, it points to needed dependencies. It automatically generates one or more ''Makefile.in'' ...
,
CMake In software development, CMake is cross-platform free and open-source software for build automation, testing, packaging and installation of software by using a compiler-independent method. CMake is not a build system itself; it generates anoth ...
, ''qmake'' for Qt based projects and
Ant Ants are eusocial insects of the family Formicidae and, along with the related wasps and bees, belong to the order Hymenoptera. Ants evolved from vespoid wasp ancestors in the Cretaceous period. More than 13,800 of an estimated total of 2 ...
for
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
based projects. * Class browser. * GUI designer * Front-end for the
GNU Compiler Collection The GNU Compiler Collection (GCC) is an optimizing compiler produced by the GNU Project supporting various programming languages, hardware architectures and operating systems. The Free Software Foundation (FSF) distributes GCC as free softw ...
and
GNU Debugger The GNU Debugger (GDB) is a portable debugger that runs on many Unix-like systems and works for many programming languages, including Ada, C, C++, Objective-C, Free Pascal, Fortran, Go, and partially others. History GDB was first written ...
. * Wizards to generate and update class definitions and application framework. * Automatic
code completion Autocomplete, or word completion, is a feature in which an application predicts the rest of a word a user is typing. In Android and iOS smartphones, this is called predictive text. In graphical user interfaces, users can typically press the tab ...
( C/ C++). * Built-in
Doxygen Doxygen ( ) is a documentation generator and static analysis tool for software source trees. When used as a documentation generator, Doxygen extracts information from specially-formatted comments within the code. When used for analysis, Doxygen ...
support. *
Revision control In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
(also known as SCM) support. Supported systems include CVS,
Subversion Subversion () refers to a process by which the values and principles of a system in place are contradicted or reversed in an attempt to transform the established social order and its structures of power, authority, hierarchy, and social norms. S ...
,
Perforce Perforce, legally Perforce Software, Inc., is an American developer of software used for developing and running applications, including version control software, web-based repository management, developer collaboration, application lifecycle man ...
, ClearCase, Git,
Mercurial Mercurial is a distributed revision control tool for software developers. It is supported on Microsoft Windows and Unix-like systems, such as FreeBSD, macOS, and Linux. Mercurial's major design goals include high performance and scalability, ...
, and
Bazaar A bazaar () or souk (; also transliterated as souq) is a marketplace consisting of multiple small stalls or shops, especially in the Middle East, the Balkans, North Africa and India. However, temporary open markets elsewhere, such as in the ...
KDevelop 4 is a completely plugin-based architecture. When a developer makes a change, they only must compile the plugin. There is a possibility to keep several profiles each of which determines which plugins to be loaded. KDevelop does not come with a text editor, but instead uses a plugin for this purpose as well. KDevelop is programming language independent and build system-independent, supporting
KDE KDE is an international free software community that develops free and open-source software. As a central development hub, it provides tools and resources that allow collaborative work on this kind of software. Well-known products include the ...
,
GNOME A gnome is a mythological creature and diminutive spirit in Renaissance magic and alchemy, first introduced by Paracelsus in the 16th century and later adopted by more recent authors including those of modern fantasy literature. Its characte ...
, and many other technologies such as Qt,
GTK+ GTK (formerly GIMP ToolKit and GTK+) is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and proprieta ...
, and
wxWidgets wxWidgets (formerly wxWindows) is a widget toolkit and tools library for creating graphical user interfaces (GUIs) for cross-platform applications. wxWidgets enables a program's GUI code to compile and run on several computer platforms with mini ...
. KDevelop has supported a variety of
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
s, including C, C++, Python,
PHP PHP is a general-purpose scripting language geared toward web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by The PHP Group. ...
,
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
, Fortran,
Ruby A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sap ...
, Ada, Pascal, SQL, and Bash scripting. Supported build systems include GNU (automake), cmake, qmake, and make for custom projects (KDevelop does not destroy user
Makefile In software development, Make is a build automation tool that automatically builds executable programs and libraries from source code by reading files called ''Makefiles'' which specify how to derive the target program. Though integrated deve ...
s if they are used) and scripting projects which don't need one. ''Code completion'' is available for C and C++. Symbols are kept in a
Berkeley DB Berkeley DB (BDB) is an unmaintained embedded database software library for key/value data, historically significant in open source software. Berkeley DB is written in C with API bindings for many other programming languages. BDB stores ar ...
file for quick lookups without re-parsing. KDevelop also offers a developer framework which helps to write new parsers for other programming languages. An integrated
debugger A debugger or debugging tool is a computer program used to test and debug other programs (the "target" program). The main use of a debugger is to run the target program under controlled conditions that permit the programmer to track its execut ...
allows graphically doing all debugging with
breakpoint In software development, a breakpoint is an intentional stopping or pausing place in a program, put in place for debugging purposes. It is also sometimes simply referred to as a pause. More generally, a breakpoint is a means of acquiring kno ...
s and backtraces. It even works with dynamically loaded plugins unlike
command line A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
GDB. ''Quick Open'' allows quick navigation between files. Currently, around 50 to 100 plugins exist for this IDE. Major ones include persistent project-wide code bookmarks, ''Code abbreviations'' which allow expanding text quickly, a ''Source formatter'' which reformats code to a ''style guide'' before saving, ''Regular expressions search'', and project-wide ''search/replace'' which helps in
refactoring In computer programming and software design, code refactoring is the process of restructuring existing computer code—changing the '' factoring''—without changing its external behavior. Refactoring is intended to improve the design, structur ...
code.


See also

* Comparison of integrated development environments *
List of KDE applications The KDE Gear (also known as the KDE Applications Bundle or KDE Applications) is a set of applications and supporting libraries that are developed by the KDE community, primarily used on Linux-based operating systems but mostly multiplatform, and ...
*
Qt Creator Qt Creator is a cross-platform C++, JavaScript and QML integrated development environment (IDE) which simplifies GUI application development. It is part of the SDK for the Qt GUI application development framework and uses the Qt API, whi ...


References


External links

* * Repositories: ** KDevelop
GitLabcgit
an
GitHub (mirror)
** KTextEditor framework
GitLabcgit
an
GitHub (mirror)
** KSyntaxHighlighting framework
GitLabcgit
an
GitHub (mirror)
* Bug tracking: i
KDevelop
i
KTextEditor framework
and i
KSyntaxHighlighting framework
{{GUI builders User interface builders 1999 software Free integrated development environments Java development tools KDE Applications Linux integrated development environments Software using the GPL license