[[fr:CatégorieOutilsDuProgrammeur]]

This page collects tools that help programmers be more
productive with programs written in languages such as C,
C++, and Java. Click the page heading to list all pages with information
related to utilities for programming.  



'''For EmacsLisp coding support, see 
CategoryCode.'''  More general Emacs programming
information is at CategoryProgramming. Debugging tools are listed in CategoryDebug.

If you are looking for an interface to an external utility not
directly related to programming, see CategoryExternalUtilities
instead.

See also CategoryVersionControl.

== Compiling ==

* AntCall -- Run `ant' from a buffer.
* CompilationMode
* CompileCommand -- `compile-command' customizations.
** UsingMakefileFromParentDirectory
* <tt>[[compile-.el]]</tt>, <tt>[[compile+.el]]</tt> -- Enhancements to standard library ##compile.el##.
* `compile' command enhancements
** ModeCompile
** SmartCompile
** DwimCompile -- major-mode aware compilation, support for build tools such as maven, sbt, or gradle 
** [http://marmalade-repo.org/packages/smarter-compile Smarter Compile]
* CompileInsideScratchbox - Run Emacs outside scratchbox, but compile inside scratchbox.
* CreatingYourOwnCompileErrorRegexp
* FlyMake -- Run `make' on the fly, highlighting errors/warnings in source buffer.
* [[Flycheck]] -- a modern replacement for FlyMake above, with support for more languages and other features.

== Interpreted files ==
* MakingScriptsExecutableOnSave

== Documenting code ==

* ArScanner -- Help free-software developers manage author rights and licenses.
* DoxyMacs -- Documentation system for C and C++.
* JavadocHelp -- Search a Java class through multiple online and local javadocs.
* JdeDocIndex -- Native Javadoc integration for the Emacs JDE.
* SemanticRecoder -- Smart comment writer and texinfo code generator.
* TexiDoclet -- Generate Java documentation in [[Info]] format.
* [[e2ansi]] -- using Emacs as a filter to highlight pages shown via ##less##.

== Code Navigation ==

* See CategoryNavigation

== File changes ==

* DiffMode -- Inspect, edit and apply diffs.
* EdiffMode -- Interactively diff, merge, and patch.
* EdiffTrees -- Recursively use EdiffMode for two variants of a directory tree.
* EdiffUrl -- Compare buffer to a web URL.
* EmergeDiff -- Graphical interface to `diff'.
* DircmpMode -- Compare two directories recursively. Display a list of all differing files in a single buffer. Invoke Ediff on any pair of files compared.
* ZtreeDiff -- Yet another directory compare/merge tool

== Project Management ==

* See CategoryProject

== Bug tracking ==

* DitzMode -- Interface to the Ditz distributed bug tracker.
* BugzMode -- Interface to the Bugzilla bug tracker.

== Package management and installers ==

* PortageMode -- Search and install Gentoo packages -- see also EmacsForGentoo.
* RpmSpecMode -- Edit SPEC files for building RPMs.
* WajigMode -- An interface for wajig.

== Testing ==

* TestR -- Minor mode for Ruby TDD.
* ToggleTest -- A Language, tech stack independent tool to quickly create/switch between Test files and Source (Test Subject) files 

== Related tools and information ==

* AsciiMode -- Display ASCII code.
* AsciiTable and EbcdicTable -- Display charts of characters and their codes for reference purposes.
* CodeBeautifying -- Reindent code and rewrap comments.
* ConnectedGraphEditor (COGRE) -- Edit and manipulate connected graphs.
* EmacsPmd - Analyze Java source code.
* [[GCCSense]] -- Development tool for C/C++ using GCC's code analyzers.
* [[GCC-XML]] -- XML result of C/C++ source parsing by GCC.
* GprofMode - Add hyperlinks to output files of the GNU profiler.
* PopupRuler -- Measure strings report layouts etc. in source files.
* RemoteProgramDevelopment -- Edit and run code on a remote host.
* <tt>[[vhdl-goto-def.el]]</tt>, <tt>[[vhdl-process-wave.el]]</tt> -- For VHDL coders.
* [http://code.google.com/p/flyparse-mode/  Flyparse-mode] -- Use external parsers to generate s-expression ASTs for language files, as they are being edited. Language modes are then able to query these ASTs using a declarative search syntax. 
* [[WTFSubmit]] -- Submit some horrible code to TheDailyWTF.com
* StatefulCounterFactory -- generate lexical closures that maintain counts of things
* StatefulStackFactory -- generate lexical closures that maintain stacks
* [[CurlEmodule]] -- emodule written for [[XEmacs]] in C that provides libcurl bindings.
