dwww Home | Show directory contents | Find package

<FILENAME filename="index.html"><html><head><title>Manual de KDevelop</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="description" content="KDevelop es un entorno de desarrollo integrado que se puede usar para una amplia variedad de tareas de programación."><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="next" href="what-is-kdevelop.html" title="Capítulo 1. ¿Qué es KDevelop?"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Manual de <span class="application">KDevelop</span></div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="what-is-kdevelop.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div lang="es" class="book"><div class="titlepage"><div><div><h1 class="title"><a name="kdevelop"></a>Manual de <span class="application">KDevelop</span></h1></div><div><div class="authorgroup"><p class="author"><span class="firstname">Esta documentación ha sido convertida a partir de la página <a class="ulink" href="https://userbase.kde.org/KDevelop4/Manual" target="_top">KDevelop4/Manual</a> de KDE UserBase.</span> <span class="surname"></span> </p><span class="othercredit"><span class="contrib">Traductor</span>: <span class="firstname">Eloy</span> <span class="surname">Cuadra</span><br></span></div></div><div>revisión <span class="releaseinfo"><span class="application">KDevelop</span> 4.4 (<span class="orgname">KDE<br></span> 4.9) (<span class="date">2012-08-19</span>)</span></div><div><p><a href="help:/kdoctools5-common/fdl-notice.html">Aviso Legal</a></p></div><div><div><div class="abstract"><p><span class="application">KDevelop</span> es un entorno de desarrollo integrado que se puede usar para una amplia variedad de tareas de programación.</p></div></div></div></div><hr></div><div class="toc"><p><b>Tabla de contenidos</b></p><dl class="toc"><dt><span class="chapter"><a href="what-is-kdevelop.html">1. ¿Qué es <span class="application">KDevelop</span>?</a></span></dt><dt><span class="chapter"><a href="sessions-and-projects--the-basics-of-kdevelop.html">2. Sesiones y proyectos: lo básico de <span class="application">KDevelop</span></a></span></dt><dd><dl><dt><span class="sect1"><a href="sessions-and-projects--the-basics-of-kdevelop.html#terminology">Terminología</a></span></dt><dt><span class="sect1"><a href="setting-up-a-session-and-importing-an-existing-project.html">Configuración de una sesión e importación de un proyecto existente</a></span></dt><dd><dl><dt><span class="sect2"><a href="setting-up-a-session-and-importing-an-existing-project.html#option-1--importing-a-project-from-a-version-control-system-server">Opción 1: importar un proyecto desde un servidor de un sistema de control de versiones</a></span></dt><dt><span class="sect2"><a href="setting-up-a-session-and-importing-an-existing-project.html#option-2--importing-a-project-that-is-already-on-your-hard-drive">Opción 2: importar un proyecto que ya esté en su disco duro</a></span></dt></dl></dd><dt><span class="sect1"><a href="setting-up-an-application-as-a-second-project.html">Configuración de una aplicación como segundo proyecto</a></span></dt><dt><span class="sect1"><a href="creating-projects-from-scratch.html">Creación de proyectos desde cero</a></span></dt></dl></dd><dt><span class="chapter"><a href="working-with-source-code.html">3. Trabajar con el código fuente</a></span></dt><dd><dl><dt><span class="sect1"><a href="working-with-source-code.html#tools-and-views">Herramientas y vistas</a></span></dt><dt><span class="sect1"><a href="exploring-source-code.html">Exploración del código fuente</a></span></dt><dd><dl><dt><span class="sect2"><a href="exploring-source-code.html#local-information">Información local</a></span></dt><dt><span class="sect2"><a href="exploring-source-code.html#file-scope-information">Información del ámbito de los archivos</a></span></dt><dt><span class="sect2"><a href="exploring-source-code.html#project-and-session-scope-information">Información del ámbito del proyecto y de la sesión</a></span></dt><dt><span class="sect2"><a href="exploring-source-code.html#rainbow-color-highlighting-explained">El resaltado con los colores del arcoíris explicado</a></span></dt></dl></dd><dt><span class="sect1"><a href="navigating-in-source-code.html">Navegar por el código fuente</a></span></dt><dd><dl><dt><span class="sect2"><a href="navigating-in-source-code.html#local-navigation">Navegación local</a></span></dt><dt><span class="sect2"><a href="navigating-in-source-code.html#file-scope-navigation-and-outline-mode">Navegación en el ámbito de archivos y modo de esquema</a></span></dt><dt><span class="sect2"><a href="navigating-in-source-code.html#project-and-session-scope-navigation--semantic-navigation">Navegación en el ámbito del proyecto y de la sesión: navegación semántica</a></span></dt></dl></dd><dt><span class="sect1"><a href="writing-source-code.html">Escritura de código fuente</a></span></dt><dd><dl><dt><span class="sect2"><a href="writing-source-code.html#auto-completion">Terminación automática</a></span></dt><dt><span class="sect2"><a href="writing-source-code.html#adding-new-classes-and-implementing-member-functions">Añadir nuevas clases e implementar funciones miembro</a></span></dt><dt><span class="sect2"><a href="writing-source-code.html#documenting-declarations">Documentar declaraciones</a></span></dt><dt><span class="sect2"><a href="writing-source-code.html#renaming-variables-functions-and-classes">Cambiar el nombre de variables, funciones y clases</a></span></dt><dt><span class="sect2"><a href="writing-source-code.html#code-snippets">Fragmentos de código</a></span></dt></dl></dd><dt><span class="sect1"><a href="modes-and-working-sets.html">Modos y conjuntos de trabajo</a></span></dt><dt><span class="sect1"><a href="some-useful-keyboard-shortcuts.html">Algunos accesos rápidos de teclado útiles</a></span></dt></dl></dd><dt><span class="chapter"><a href="code-generation-with-templates.html">4. Generación de código con plantillas</a></span></dt><dd><dl><dt><span class="sect1"><a href="code-generation-with-templates.html#creating-a-new-class">Creación de una nueva clase</a></span></dt><dt><span class="sect1"><a href="creating-a-new-unit-test.html">Creación de una nueva prueba unitaria</a></span></dt><dt><span class="sect1"><a href="other-files.html">Otros archivos</a></span></dt><dt><span class="sect1"><a href="managing-templates.html">Gestión de plantillas</a></span></dt></dl></dd><dt><span class="chapter"><a href="building-compiling-projects-with-custom-makefiles.html">5. Construir (compilar) proyectos con Makefiles personalizados</a></span></dt><dd><dl><dt><span class="sect1"><a href="building-compiling-projects-with-custom-makefiles.html#building-individual-makefile-targets">Construcción de objetivos Makefile individuales</a></span></dt><dt><span class="sect1"><a href="selecting-a-collection-of-makefile-targets-for-repeated-building.html">Selección de una colección de Makefiles de destino para compilación repetitiva</a></span></dt><dt><span class="sect1"><a href="what-to-do-with-error-messages.html">Qué hacer con los mensajes de error</a></span></dt></dl></dd><dt><span class="chapter"><a href="running-programs-in-kdevelop.html">6. Ejecutar programas en <span class="application">KDevelop</span></a></span></dt><dd><dl><dt><span class="sect1"><a href="running-programs-in-kdevelop.html#setting-up-launches-in-kdevelop">Configuración de lanzadores en <span class="application">KDevelop</span></a></span></dt><dt><span class="sect1"><a href="some-useful-keyboard-shortcuts0.html">Algunos accesos rápidos de teclado útiles</a></span></dt></dl></dd><dt><span class="chapter"><a href="debugging-programs-in-kdevelop.html">7. Depuración de programas en <span class="application">KDevelop</span></a></span></dt><dd><dl><dt><span class="sect1"><a href="debugging-programs-in-kdevelop.html#running-a-program-in-the-debugger">Ejecutar un programa en el depurador</a></span></dt><dt><span class="sect1"><a href="attaching-the-debugger-to-a-running-process.html">Adjuntar el depurador a un proceso en ejecución</a></span></dt><dt><span class="sect1"><a href="some-useful-keyboard-shortcuts1.html">Algunos accesos rápidos de teclado útiles</a></span></dt></dl></dd><dt><span class="chapter"><a href="working-with-version-control-systems.html">8. Trabajar con sistemas de control de versiones</a></span></dt><dt><span class="chapter"><a href="customizing-kdevelop.html">9. Personalización de <span class="application">KDevelop</span></a></span></dt><dd><dl><dt><span class="sect1"><a href="customizing-kdevelop.html#customizing-the-editor">Personalización del editor</a></span></dt><dt><span class="sect1"><a href="customizing-code-indentation.html">Personalización de la sangría del código</a></span></dt><dt><span class="sect1"><a href="customizing-keyboard-shortcuts.html">Personalización de los accesos rápidos de teclado</a></span></dt><dt><span class="sect1"><a href="customizing-code-auto-completion.html">Personalización de la terminación automática de código</a></span></dt></dl></dd><dt><span class="chapter"><a href="credits.html">10. Créditos y licencia</a></span></dt></dl></div><FILENAME filename="what-is-kdevelop.html"><html><head><title>Capítulo 1. ¿Qué es KDevelop?</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="index.html" title="Manual de KDevelop"><link rel="prev" href="index.html" title="Manual de KDevelop"><link rel="next" href="sessions-and-projects--the-basics-of-kdevelop.html" title="Capítulo 2. Sesiones y proyectos: lo básico de KDevelop"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> ¿Qué es <span class="application">KDevelop</span>?</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="index.html">Anterior</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="sessions-and-projects--the-basics-of-kdevelop.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="what-is-kdevelop"></a>Capítulo 1. ¿Qué es <span class="application">KDevelop</span>?</h1></div></div></div><p><a class="ulink" href="https://www.kdevelop.org/" target="_top"><span class="application">KDevelop</span></a> es un moderno entorno de desarrollo integrado (IDE) para C++ (y otros lenguajes) que es una de las muchas <a class="ulink" href="https://kde.org/applications/" target="_top">aplicaciones de KDE</a>. Como tal, funciona sobre <span class="trademark">Linux</span>® (incluso si está utilizando cualquier otro escritorio, como GNOME), aunque también está disponible para otras variantes de <span class="trademark">UNIX</span>®, e incluso para Windows.</p><p><span class="application">KDevelop</span> ofrece todos los servicios de un IDE moderno. Para grandes proyectos y aplicaciones, la característica más importante es que <span class="application">KDevelop</span> <span class="emphasis"><em>entiende C++</em></span>: analiza todo el código fuente y recuerda las funciones miembro que posee cada clase, dónde se han definido las variables, cuáles son sus tipos y muchas otras cosas de su código fuente. Por ejemplo, si uno de los archivos de cabecera de su proyecto declara una clase</p><pre class="programlisting">class Car {
  // ...
  public:
    std::string get_color () const;
};
</pre><p>
</p><p>y posteriormente escribe en su programa</p><pre class="programlisting">Car my_ride;
// ...hacer algo con esta variable...
std::string color = my_ride.ge
</pre><p>
</p><p>recordará que el <code class="varname">my_ride</code> de la última línea es una variable de tipo <code class="varname">Car</code> y le ofrecerá la posibilidad de completar <code class="varname">ge</code> como <code class="varname">get_color()</code>, ya que esta es la única función miembro de la clase <code class="varname">Car</code> que empieza de ese modo. En lugar de continuar escribiendo, solo tiene que pulsar <span class="keysym">Intro</span> para obtener la palabra completa; esto le ahorra pulsaciones de teclado, le evita errores al teclear y no le obliga a recordar los nombres exactos de los cientos o miles de funciones y clases que componen los grandes proyectos.</p><p>Como segundo ejemplo, supondremos que tiene un código como este:</p><pre class="programlisting">double foo ()
{
  double var = my_func();
 return var * var;
}
double bar ()
{
  double var = my_func();
  return var * var * var;
}
</pre><p>Si sitúa el cursor del ratón sobre el símbolo <code class="varname">var</code> de la función <code class="varname">bar</code> se le ofrecerá la posibilidad de ver todos los usos de este símbolo. Si pulsa sobre esta opción le mostrará únicamente los usos de esta variable dentro de la función <code class="varname">bar</code>, ya que <span class="application">KDevelop</span> entiende que la variable <code class="varname">var</code> de la función <code class="varname">foo</code> no tiene nada que ver con ella. De igual modo, si pulsa con el botón derecho del ratón sobre el nombre de la variable podrá cambiar el nombre de la misma; si lo hace, solo se modificará la variable de la función <code class="varname">bar</code>, pero no la que tiene el mismo nombre dentro de la función <code class="varname">foo</code>.</p><p>Pero <span class="application">KDevelop</span> no es solamente un editor de código inteligente; hay otras cosas que <span class="application">KDevelop</span> hace bien. Por supuesto, puede resaltar el código fuente con diferentes colores, posee sangrado personalizable, dispone de una interfaz integrada con el depurador <span class="application">gdb</span> de GNU, puede mostrarle información sobre una función al situar el cursor del ratón sobre ella, puede lidiar con diferentes clases de entornos de construcción y compiladores (<abbr class="abbrev">por ejemplo</abbr> con proyectos basados en <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">make</span></span> y <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">cmake</span></span>), entre otras muchas cosas interesantes que se describen en este manual.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="index.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="sessions-and-projects--the-basics-of-kdevelop.html">Siguiente</a></td></tr><tr><td class="prevCell">Manual de <span class="application">KDevelop</span> </td><td class="upCell"> </td><td class="nextCell"> Sesiones y proyectos: lo básico de <span class="application">KDevelop</span></td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="sessions-and-projects--the-basics-of-kdevelop.html"><html><head><title>Capítulo 2. Sesiones y proyectos: lo básico de KDevelop</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="index.html" title="Manual de KDevelop"><link rel="prev" href="what-is-kdevelop.html" title="Capítulo 1. ¿Qué es KDevelop?"><link rel="next" href="setting-up-a-session-and-importing-an-existing-project.html" title="Configuración de una sesión e importación de un proyecto existente"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Sesiones y proyectos: lo básico de <span class="application">KDevelop</span></div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="what-is-kdevelop.html">Anterior</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="setting-up-a-session-and-importing-an-existing-project.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="sessions-and-projects--the-basics-of-kdevelop"></a>Capítulo 2. Sesiones y proyectos: lo básico de <span class="application">KDevelop</span></h1></div></div></div><p>En esta sección trataremos sobre la terminología de cómo <span class="application">KDevelop</span> ve el mundo y cómo estructura el trabajo. En particular, introduciremos los conceptos de <span class="emphasis"><em>sesiones</em></span> y <span class="emphasis"><em>proyectos</em></span>, y explicaremos cómo puede configurar los proyectos sobre los que vaya a trabajar usando <span class="application">KDevelop</span>.</p><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="terminology"></a>Terminología</h2></div></div></div><p><span class="application">KDevelop</span> usa los conceptos de <span class="emphasis"><em>sesiones</em></span> y <span class="emphasis"><em>proyectos</em></span>. Una sesión contiene todos los proyectos que están relacionados entre sí. En los ejemplos que siguen supondremos que usted es el desarrollador de una biblioteca y de una aplicación que la usa. Puede pensar que la primera equivale a las bibliotecas centrales de KDE y que la segunda es <span class="application">KDevelop</span>. Otro ejemplo similar sería el de un programador del kernel de <span class="trademark">Linux</span>® que también está trabajando en un controlador de dispositivo para <span class="trademark">Linux</span>® que aún no ha sido integrado en el árbol de código fuente del kernel.</p><p>Si tomamos este último caso como ejemplo, tendríamos una sesión en <span class="application">KDevelop</span> que contendría dos proyectos: el del kernel de <span class="trademark">Linux</span>® y el del controlador de dispositivo. Seguramente desearía agrupar ambos proyectos en una única sesión (en lugar de tener dos sesiones con un único proyecto cada una), ya que le resultaría útil poder ver las funciones y las estructuras de datos del kernel en <span class="application">KDevelop</span> mientras escribe el código fuente para el controlador (de este modo, podrá disponer de expansión automática de nombre de funciones y de variables del kernel, o consultar la documentación de cualquier función del kernel mientras está programando el controlador de dispositivo).</p><p>Ahora imagine que también es un desarrollador de KDE. Ahora también tendría una segunda sesión que contuviera KDE como proyecto. En principio, sería posible tener una única sesión para todo esto, pero no existe un motivo razonable para ello: cuando trabaja en KDE no necesita acceder a funciones del kernel ni del controlador de dispositivo, y tampoco querrá que se expandan automáticamente los nombres de las clases de KDE cuando trabaje con el kernel de <span class="trademark">Linux</span>®. Del mismo modo, la construcción de algunas de las bibliotecas de KDE es independiente de la recompilación del kernel de <span class="trademark">Linux</span>® (independientemente de que cuando compile el controlador de dispositivo sea una buena idea volver a compilar el kernel de <span class="trademark">Linux</span>® si ha modificado alguno de los archivos de cabecera del kernel).</p><p>Para finalizar, otro uso de las sesiones sería cuando está trabajando tanto en la versión de desarrollo actual de un proyecto como en una rama del mismo. En este caso no sería deseable que <span class="application">KDevelop</span> confundiera las clases que pertenecen a la versión principal y a la rama, por lo que tendría dos sesiones con el mismo conjunto de proyectos, pero usando diferentes directorios (que se corresponderían con las diferentes ramas de desarrollo).</p></div><FILENAME filename="setting-up-a-session-and-importing-an-existing-project.html"><html><head><title>Configuración de una sesión e importación de un proyecto existente</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="sessions-and-projects--the-basics-of-kdevelop.html" title="Capítulo 2. Sesiones y proyectos: lo básico de KDevelop"><link rel="prev" href="sessions-and-projects--the-basics-of-kdevelop.html" title="Capítulo 2. Sesiones y proyectos: lo básico de KDevelop"><link rel="next" href="setting-up-an-application-as-a-second-project.html" title="Configuración de una aplicación como segundo proyecto"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Configuración de una sesión e importación de un proyecto existente</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="sessions-and-projects--the-basics-of-kdevelop.html">Anterior</a></td><td class="upCell">Sesiones y proyectos: lo básico de <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="setting-up-an-application-as-a-second-project.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="setting-up-a-session-and-importing-an-existing-project"></a>Configuración de una sesión e importación de un proyecto existente</h2></div></div></div><p>Quedémonos con el ejemplo del kernel de <span class="trademark">Linux</span>® y del controlador de dispositivo (tal vez quiera sustituir su propio conjunto de bibliotecas o de proyectos para estos dos ejemplos). Para crear una nueva sesión que contenga estos dos proyectos, vaya a la opción del menú <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Sesión</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Iniciar nueva sesión</span></span> (o, si esta es la primera vez que está usando <span class="application">KDevelop</span>, utilice simplemente la sesión predeterminada que se obtiene al iniciar el programa, que estará vacía).</p><p>A continuación vamos a añadir proyectos a esta sesión. Por ahora, supondremos que ya existen en algún lugar (el caso de iniciar proyectos desde cero se trata en otra parte de este manual). Para ello, disponemos esencialmente de dos métodos dependiendo de si el proyecto está ya en algún lugar de su disco duro o si es necesario descargarlo de un servidor.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="option-1--importing-a-project-from-a-version-control-system-server"></a>Opción 1: importar un proyecto desde un servidor de un sistema de control de versiones</h3></div></div></div><p>En primer lugar, supongamos que el proyecto que queremos configurar (el kernel de <span class="trademark">Linux</span>®) reside en un sistema de control de versiones de un servidor, del que aún no lo ha descargado a su disco duro. En este caso, vaya al menú <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Proyecto</span></span> para crear un proyecto para el kernel de <span class="trademark">Linux</span>® dentro de la sesión actual y siga luego estos pasos:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Vaya a <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Proyecto</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Obtener proyecto</span></span> para importar un proyecto. </p></li><li class="listitem"><p>Ahora tendrá diversas opciones para iniciar un nuevo proyecto en la sesión actual dependiendo de dónde procedan los archivos de código fuente: puede hacer que <span class="application">KDevelop</span> apunte a un directorio existente (vea la opción 2 más adelante) o puede pedirle a <span class="application">KDevelop</span> que obtenga el código fuente de un repositorio. </p></li><li class="listitem"><p>Suponiendo que aún no ha descargado una versión: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>En el diálogo, debajo de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Seleccione el origen</span></span>, elija el uso de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Del sistema de archivos</span></span>, <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Subversion</span></span>, <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Git</span></span>, <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">GitHub</span></span> o <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">KDE</span></span>. </p></li><li class="listitem"><p>Elija un directorio de trabajo como destino en el que descargar el código fuente </p></li><li class="listitem"><p>Escoja una URL para la ubicación del repositorio desde donde se obtendrán los archivos de código fuente </p></li><li class="listitem"><p>Pulse <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Obtener</span></span>. Esta acción puede necesitar bastante tiempo dependiendo de la velocidad de su conexión y del tamaño del proyecto. Desafortunadamente, la barra de progreso de <span class="application">KDevelop</span> 4.2.x no muestra ninguna información, pero puede seguir el progreso mirando de vez en cuando la salida de la orden de consola </p><pre class="screen">du -sk <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="replaceable"><em class="replaceable"><code>/ruta/al/proyecto/de/<span class="application">KDevelop</span></code></em></span></pre><p> para ver la cantidad de datos que ya han sido descargados. </p></li></ul></div><p>
</p></li></ul></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>El problema de la barra de progreso ha sido notificado como <a class="ulink" href="https://bugs.kde.org/show_bug.cgi?id=256832" target="_top">error 256832 de <span class="application">KDevelop</span></a>.</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Durante este proceso también obtenemos el mensaje de error <span class="emphasis"><em>Necesita especificar una ubicación válida para el proyecto</em></span>, que puede ignorar sin mayor problema.</p></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Le pide que seleccione un archivo de proyecto de <span class="application">KDevelop</span> en este directorio. Como es probable que todavía no tenga uno, pulse <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Siguiente</span></span> </p></li><li class="listitem"><p>Pulse <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Siguiente</span></span> otra vez </p></li><li class="listitem"><p><span class="application">KDevelop</span> le solicitará entonces que escoja un gestor de proyecto. Si este proyecto usa archivos «make» estándares de <span class="trademark">UNIX</span>®, escoja el gestor de proyectos para «makefiles» personalizados </p></li><li class="listitem"><p><span class="application">KDevelop</span> comenzará entonces a analizar todo el proyecto. De nuevo, tardará un tiempo para recorrer todos los archivos e indexar sus clases, <abbr class="abbrev">etc.</abbr> En la parte inferior izquierda de la ventana principal existe una barra de progreso que muestra cuánto está tardando este proceso (si dispone de varios procesadores podrá acelerar este proceso yendo a la opción del menú <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Preferencias</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Configurar <span class="application">KDevelop</span></span></span>, seleccionando después la página <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Analizador en segundo plano</span></span> en la parte izquierda e incrementando el número de hilos para en análisis en segundo plano en la parte de la derecha del diálogo). </p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="option-2--importing-a-project-that-is-already-on-your-hard-drive"></a>Opción 2: importar un proyecto que ya esté en su disco duro</h3></div></div></div><p>De forma alternativa, si el proyecto en el que quiere trabajar ya está en su disco duro (por ejemplo, bien porque lo había descargado como un archivo «tar» desde un servidor FTP, bien porque ya había descargado una versión del proyecto desde un sistema de control de versiones, o bien porque se trata de su propio proyecto que existe <span class="emphasis"><em>solo</em></span> en su disco duro), use la opción del menú <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Proyecto</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Abrir/importar proyecto</span></span> y, en el diálogo que se le mostrará, escoja el directorio en el que reside su proyecto.</p></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="sessions-and-projects--the-basics-of-kdevelop.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="setting-up-an-application-as-a-second-project.html">Siguiente</a></td></tr><tr><td class="prevCell">Sesiones y proyectos: lo básico de <span class="application">KDevelop</span> </td><td class="upCell">Sesiones y proyectos: lo básico de <span class="application">KDevelop</span></td><td class="nextCell"> Configuración de una aplicación como segundo proyecto</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="setting-up-an-application-as-a-second-project.html"><html><head><title>Configuración de una aplicación como segundo proyecto</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="sessions-and-projects--the-basics-of-kdevelop.html" title="Capítulo 2. Sesiones y proyectos: lo básico de KDevelop"><link rel="prev" href="setting-up-a-session-and-importing-an-existing-project.html" title="Configuración de una sesión e importación de un proyecto existente"><link rel="next" href="creating-projects-from-scratch.html" title="Creación de proyectos desde cero"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Configuración de una aplicación como segundo proyecto</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="setting-up-a-session-and-importing-an-existing-project.html">Anterior</a></td><td class="upCell">Sesiones y proyectos: lo básico de <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="creating-projects-from-scratch.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="setting-up-an-application-as-a-second-project"></a>Configuración de una aplicación como segundo proyecto</h2></div></div></div><p>Lo siguiente que querrá hacer será configurar otros proyectos en la misma sesión. En el ejemplo anterior, querría añadir el controlador de dispositivo como segundo proyecto, lo que podrá hacer siguiendo exactamente los mismos pasos.</p><p>Si tiene diversas aplicaciones o bibliotecas, solo tiene que repetir los mismos pasos para añadir más proyectos a su sesión.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="setting-up-a-session-and-importing-an-existing-project.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="creating-projects-from-scratch.html">Siguiente</a></td></tr><tr><td class="prevCell">Configuración de una sesión e importación de un proyecto existente </td><td class="upCell">Sesiones y proyectos: lo básico de <span class="application">KDevelop</span></td><td class="nextCell"> Creación de proyectos desde cero</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="creating-projects-from-scratch.html"><html><head><title>Creación de proyectos desde cero</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="sessions-and-projects--the-basics-of-kdevelop.html" title="Capítulo 2. Sesiones y proyectos: lo básico de KDevelop"><link rel="prev" href="setting-up-an-application-as-a-second-project.html" title="Configuración de una aplicación como segundo proyecto"><link rel="next" href="working-with-source-code.html" title="Capítulo 3. Trabajar con el código fuente"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Creación de proyectos desde cero</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="setting-up-an-application-as-a-second-project.html">Anterior</a></td><td class="upCell">Sesiones y proyectos: lo básico de <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="working-with-source-code.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="creating-projects-from-scratch"></a>Creación de proyectos desde cero</h2></div></div></div><p>Por supuesto, también existe la posibilidad de que quiera comenzar un nuevo proyecto desde cero. Para ello, puede usar la opción del menú <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Proyecto</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Nuevo desde plantilla...</span></span>, que le mostrará un diálogo para seleccionar una plantilla. Algunas de estas plantillas de proyecto se proporcionan con <span class="application">KDevelop</span>, pero dispondrá de más si instala la aplicación <span class="application">KAppTemplate</span>. Elija el tipo de proyecto y el lenguaje de programación en el diálogo, introduzca un nombre y la ubicación del proyecto, y luego pulse <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Siguiente</span></span>. </p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-project-dialog.png"></div></div><p>
</p><p>La segunda página del diálogo le permitirá decidir por un sistema de control de versiones. Escoja el sistema que desee usar y rellene la configuración específica del sistema, si es necesario. Si no quiere usar ningún sistema de control de versiones, o si pretende hacerlo más adelante de forma manual, elija <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Ninguno</span></span>. Cuando haya terminado, pulse el botón <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Finalizar</span></span>. </p><p>Su proyecto se creará, de modo que podrá probar a compilarlo o a instalarlo. Algunas plantillas incluirán comentarios dentro del código, e incluso un archivo README independiente, por lo que se le recomienda que lea dicha información en primer lugar. A continuación podrá comenzar a trabajar en su proyecto añadiéndole las funcionalidades que desee. </p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="setting-up-an-application-as-a-second-project.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="working-with-source-code.html">Siguiente</a></td></tr><tr><td class="prevCell">Configuración de una aplicación como segundo proyecto </td><td class="upCell">Sesiones y proyectos: lo básico de <span class="application">KDevelop</span></td><td class="nextCell"> Trabajar con el código fuente</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="what-is-kdevelop.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="setting-up-a-session-and-importing-an-existing-project.html">Siguiente</a></td></tr><tr><td class="prevCell">¿Qué es <span class="application">KDevelop</span>? </td><td class="upCell"> </td><td class="nextCell"> Configuración de una sesión e importación de un proyecto existente</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="working-with-source-code.html"><html><head><title>Capítulo 3. Trabajar con el código fuente</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="index.html" title="Manual de KDevelop"><link rel="prev" href="creating-projects-from-scratch.html" title="Creación de proyectos desde cero"><link rel="next" href="exploring-source-code.html" title="Exploración del código fuente"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Trabajar con el código fuente</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="creating-projects-from-scratch.html">Anterior</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="exploring-source-code.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="working-with-source-code"></a>Capítulo 3. Trabajar con el código fuente</h1></div></div></div><p>Además de depurar, las tareas que más tiempo le llevarán cuando esté desarrollando software son leer y escribir código fuente. Para ello, <span class="application">KDevelop</span> le ofrece muchos modos diferentes de explorar código fuente y para hacer que escribirlo sea más productivo. Como se describe en más detalle en las secciones siguientes, <span class="application">KDevelop</span> no es solo un editor de código fuente (más bien, es un sistema de gestión de código fuente que le proporciona diferentes vistas de información extraída de los archivos que componen el código fuente de su sesión).</p><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="tools-and-views"></a>Herramientas y vistas</h2></div></div></div><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-7.png"><div class="caption"><p></p></div></div></div><p>Para poder trabajar con proyectos, <span class="application">KDevelop</span> dispone del concepto de <span class="emphasis"><em>herramientas</em></span>. Una herramienta proporciona una vista particular del código fuente o una acción que se puede realizar con él. Las herramientas se representan por botones alrededor del perímetro de la ventana (con texto vertical sobre los márgenes izquierdo y derecho, u horizontal sobre el margen superior). Si pulsa sobre ellos, se expanden en una ventana secundaria (una <span class="emphasis"><em>vista</em></span>) dentro de la ventana principal. Si vuelve a pulsar sobre el botón, la ventana secundaria desaparecerá.</p><p>También puede pulsar la <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">x</span></span> de la esquina superior derecha de una ventana secundaria para hacer que desaparezca.</p><p>La imagen inferior muestra una determinada selección de herramientas, alineadas sobre los márgenes izquierdo y derecho. En la imagen, la herramienta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Clases</span></span> está abierta a la izquierda, y la herramienta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Fragmentos</span></span> a la derecha, junto con un editor que contiene un archivo de código fuente en la parte central. En la práctica, la mayor parte del tiempo solo tendrá abierto el editor y tal vez una de las herramientas <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Clases</span></span> o <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Navegador de código</span></span> a la izquierda. Es muy probable que el resto de vistas de herramientas estén abiertas de forma temporal cuando las esté usando, dejando más espacio para el editor la mayor parte del tiempo.</p><p>Cuando ejecute <span class="application">KDevelop</span> por primera vez, debería tener el botón de la herramienta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Proyectos</span></span>. Pulse sobre él para abrir una ventana secundaria que muestra los proyectos que ha añadido a la sesión en la parte inferior, junto a una vista del sistema de archivos de los directorios de sus proyectos en la parte superior.</p><p>Existen más herramientas que puede usar con <span class="application">KDevelop</span>, aunque no todas ellas están inicialmente presentes como botones en los laterales. Para añadir alguna de ellas, vaya a la entrada del menú <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Ventana</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Añadir vista de herramientas</span></span>. Estas son algunas de las que posiblemente encontrará útiles:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Clases</span></span>: una lista completa de todas las clases que están definidas en uno de los proyectos de su sesión, junto a todas sus funciones y variables miembros. Si pulsa sobre cualquiera de los miembros se abrirá una ventana del editor de código fuente en la posición que contiene el elemento sobre el que ha pulsado. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Documentos</span></span>: lista algunos de los archivos que ha usado más recientemente, ordenados según su tipo (<abbr class="abbrev">por ejemplo</abbr> archivos de código fuente, archivos de parches, documentos de texto sin formato). </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Navegador de código</span></span>: dependiendo de la posición del cursor en un archivo, esta herramienta muestra cosas relacionadas. Por ejemplo, si el cursor está en una línea <code class="varname">#include</code>, se muestra información sobre el archivo que está incluyendo, como qué clases se declaran en él; si el cursor está en una línea en blanco que pertenece al archivo, se muestra las clases y las funciones declaradas y definidas en el archivo actual (siempre como enlaces sobre los que puede pulsar para ir al punto del archivo donde se encuentra la declaración o la definición real); si el cursor está en la definición de una función, se muestra dónde está declarada la función y se le ofrece una lista de lugares donde se usa dicha función. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Sistema de archivos</span></span>: le muestra una vista en forma de árbol del sistema de archivos. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Documentación</span></span>: le permite buscar páginas de manual y otros documentos de ayuda. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Fragmentos</span></span>: le proporciona secuencias de texto que puede usar una y otra vez sin tener que escribirlas en cada momento. Por ejemplo, en el proyecto del que se ha obtenido la imagen anterior, existe la necesidad de escribir frecuentemente el siguiente código </p></li></ul></div><pre class="programlisting">for (typename Triangulation&lt; dim&gt;::active_cell_iterator cell
      = triangulation.begin_active();
   cell != triangulation.end();
   ++cell)</pre><p>Se trata de una expresión poco elegante, pero siempre se mostrará del mismo modo cada vez que necesite este bucle (lo que lo convierte en un buen candidato para un fragmento de código).</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Konsole</span></span>: abre una ventana de la línea de órdenes dentro de la ventana principal de <span class="application">KDevelop</span> donde podrá introducir una orden ocasional que desee ejecutar (<abbr class="abbrev">por ejemplo</abbr> para ejecutar <code class="varname">./configure</code>). </p></li></ul></div><p>Una lista completa de herramientas y vistas se proporciona <a class="ulink" href="https://userbase.kde.org/Special:myLanguage/KDevelop4/Manual/Tool%20list" target="_top">aquí</a>.</p><p>Para muchos programadores, el espacio de pantalla vertical es el más importante. Para conseguir este fin, puede ordenar las vistas de herramientas en los márgenes izquierdo y derecho de la ventana. Para mover una herramienta, pulse sobre su símbolo con el botón derecho del ratón y seleccione una nueva posición para ella.</p></div><FILENAME filename="exploring-source-code.html"><html><head><title>Exploración del código fuente</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="working-with-source-code.html" title="Capítulo 3. Trabajar con el código fuente"><link rel="prev" href="working-with-source-code.html" title="Capítulo 3. Trabajar con el código fuente"><link rel="next" href="navigating-in-source-code.html" title="Navegar por el código fuente"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Exploración del código fuente</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="working-with-source-code.html">Anterior</a></td><td class="upCell">Trabajar con el código fuente</td><td class="nextCell"><a accesskey="n" href="navigating-in-source-code.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="exploring-source-code"></a>Exploración del código fuente</h2></div></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="local-information"></a>Información local</h3></div></div></div><p><span class="application">KDevelop</span> <span class="emphasis"><em>entiende</em></span> el código fuente, por lo que es realmente bueno a la hora de proporcionarle información sobre las variables o funciones que aparezcan en su programa. Por ejemplo, a continuación se muestra una captura de trabajo con un trozo de código, con el cursor del ratón sobre el símbolo <code class="varname">cell</code> en la línea 1316 (si prefiere trabajar con el teclado, puede conseguir el mismo efecto manteniendo pulsada la tecla <span class="keycap"><strong>Alt</strong></span> durante unos instantes):</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-13.png"><div class="caption"><p></p></div></div></div><p><span class="application">KDevelop</span> le muestra una ayuda emergente que incluye el tipo de la variable (aquí es <code class="varname">DoFHandler&lt;dim&gt;active_cell_iterator</code>), dónde se ha declarado la variable (el <span class="emphasis"><em>contenedor</em></span>, que aquí es la función que la contiene <code class="varname">get_maximal_velocity</code>, ya que se trata de una variable local), qué es (una variable, no una función ni una clase ni un espacio de nombres) y dónde está declarada (en la línea 1314, unas cuantas de líneas más arriba en el código fuente).</p><p>En el contexto actual, el símbolo sobre el que se ha situado el cursor del ratón no posee documentación asociada. En este ejemplo, si el cursor del ratón hubiera estado sobre el símbolo <code class="varname">get_this_mpi_process</code> de la línea 1318, la información mostrada habría sido esta:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-14.png"><div class="caption"><p></p></div></div></div><p>Aquí, <span class="application">KDevelop</span> ha obtenido referencias cruzadas de la declaración de un archivo completamente distinto (<code class="filename">utilities.h</code>, que incluso pertenece a un proyecto distinto de la misma sesión) junto con el comentario al estilo de doxygen que acompaña a la declaración en dicho archivo.</p><p>Lo que convierte a estas ayudas emergentes en más útiles es el hecho de que son dinámicas: es posible pulsar sobre el contenedor para obtener información sobre el contexto en el que se ha declarado la variable (<abbr class="abbrev">es decir</abbr> sobre el espacio de nombres <code class="varname">System</code>, así como dónde se ha declarado, definido, usado o cuál es su documentación); también es posible pulsar sobre los enlaces azules que reiniciarán la posición del cursor en la declaración del símbolo (<abbr class="abbrev">por ejemplo</abbr> en la línea 289 de <code class="varname">utilities.h</code>) o proporcionar una lista de lugares donde se usa este símbolo en el archivo actual o en todos los proyectos de la sesión actual. Esto último resulta bastante útil si se quiere explorar, por ejemplo, cómo se usa una determinada función en un gran proyecto de código.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>La información de la ayuda emergente es fugaz: depende de que mantenga pulsada la tecla <span class="keycap"><strong>Alt</strong></span> o de la situación del cursor del ratón. Si desea un lugar permanente para ella, abra la vista de la herramienta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Navegador de código</span></span> en una de las ventanas secundarias. Por ejemplo, aquí el cursor está sobre la misma función que en el ejemplo anterior, y la vista de la herramienta de la izquierda presenta el mismo tipo de información que se mostraba en la ayuda emergente anterior:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-15.png"><div class="caption"><p></p></div></div></div><p>Al mover el cursor en la parte de la derecha se modifica la información presentada en la parte de la izquierda. Aún más, si pulsa el botón <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Bloquear la vista actual</span></span> que hay en la parte superior derecha podrá bloquear esta información, haciéndola independiente del movimiento del cursor mientras explora la información allí presentada.</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Este tipo de información de contexto está disponible en muchas partes de <span class="application">KDevelop</span>, no solo en el editor de código fuente. Por ejemplo, si mantiene pulsada la tecla <span class="keycap"><strong>Alt</strong></span> en una lista de completado (<abbr class="abbrev">por ejemplo</abbr>, cuando está haciendo una apertura rápida), también se muestra una información de contexto sobre el símbolo actual.</p></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="file-scope-information"></a>Información del ámbito de los archivos</h3></div></div></div><p>El siguiente nivel superior es para obtener información sobre todo el archivo de código fuente en el que está trabajando actualmente. Para este fin, posicione el cursor en el ámbito del archivo en el archivo actual y mire lo que le muestra la vista de la herramienta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Navegador de código</span></span>:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-16.png"><div class="caption"><p></p></div></div></div><p>Aquí se muestra una lista de espacios de nombres, clases y funciones declaradas o definidas en el archivo actual, proporcionándole un resumen de lo que está ocurriendo en dicho archivo y los modos de saltar directamente a cualquiera de estas declaraciones o definiciones sin que sea necesario desplazarse arriba y abajo por el archivo o buscar un símbolo en particular.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>La información mostrada para el ámbito del archivo es la misma que se presenta en el modo <span class="quote">“<span class="quote">Esquema</span>”</span>, discutido más adelante, para navegar por el código fuente; la diferencia es que el modo de esquema es solo una ventana emergente temporal.</p></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="project-and-session-scope-information"></a>Información del ámbito del proyecto y de la sesión</h3></div></div></div><p>Existen diferentes maneras de obtener información sobre un proyecto completo (o, de hecho, sobre todos los proyectos de una sesión). Este tipo de información se proporciona normalmente mediante el uso de distintas vistas de herramientas. Por ejemplo, la vista de la herramienta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Clases</span></span> proporciona una estructura en forma de árbol de todas las clases y espacios de nombres circundantes de todos los proyectos de una sesión, junto a las funciones y variables miembros de cada una de dichas clases:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-17.png"><div class="caption"><p></p></div></div></div><p>Si sitúa el cursor sobre una entrada se le vuelve a mostrar información sobre dicho símbolo, las posiciones de su declaración y de su definición y su uso. Si hace doble clic sobre una entrada en la vista de árbol, se abrirá una ventana de edición que mostrará la posición donde se declara o define el símbolo.</p><p>Pero también existen otros modos de mostrar información global. Por ejemplo, la herramienta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Documentos</span></span> proporciona una vista de un proyecto referente a los tipos de archivos o de otros documentos que contiene el proyecto:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-18.png"><div class="caption"><p></p></div></div></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="rainbow-color-highlighting-explained"></a>El resaltado con los colores del arcoíris explicado</h3></div></div></div><p><span class="application">KDevelop</span> usa diversos colores para resaltar diferentes objetos en el código fuente. Si sabe lo que significan los distintos colores podrá obtener bastante información del código fuente con solo mirar los colores, sin necesidad de leer el código. Las reglas de resaltado son las siguientes: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Los objetos de los tipos «class», «struct» y «enum» (los valores y el tipo), las funciones (globales) y los miembros de las clases tienen cada uno su propio color asignado: para las clases es el verde, los enumeradores se muestran en rojo oscuro y los miembros de una clase en amarillo oscuro o en morado; las funciones (globales) se muestran siempre en morado.</p></li><li class="listitem"><p>Todas las variables globales se muestran en color verde oscuro.</p></li><li class="listitem"><p>Los identificadores que son «typedefs» para otros tipos se muestran en color verde azulado.</p></li><li class="listitem"><p>Todas las declaraciones y definiciones de objetos están en negrita.</p></li><li class="listitem"><p>Si un miembro se accede dentro del contexto donde está definido (clase base o derivada) se muestra en amarillo; en caso contrario se muestra en morado.</p></li><li class="listitem"><p>Si un miembro es privado o protegido, se muestra en un color algo más oscuro cuando se usa.</p></li><li class="listitem"><p>Para las variables locales en el ámbito del cuerpo de una función se escogen colores del arcoíris basándose en un hash del identificador. Esto también es válido para los parámetros de la función. Un identificador siempre tendrá el mismo color dentro de su ámbito (aunque el mismo identificador tendrá distinto color si representa diferentes objetos, <abbr class="abbrev">es decir</abbr>, si se vuelve a definir en un ámbito más anidado), y normalmente también tendrá el mismo color para identificadores con el mismo nombre en distintos ámbitos. De este modo, si tiene diferentes funciones que tienen parámetros con los mismos nombres, todos los argumentos serán del mismo color. Este tipo de coloración basado en el arcoíris se puede desactivar de forma independiente de la coloración global en el diálogo de preferencias.</p></li><li class="listitem"><p>Los identificadores para los que <span class="application">KDevelop</span> no puede determinar la correspondiente declaración se colorean en blanco. A veces, esto se debe a la ausencia de directivas <code class="varname">#include</code>.</p></li><li class="listitem"><p>Además de dicha coloración, se aplicará el resaltado de sintaxis normal del editor, como lo hace <span class="application">Kate</span>. El resaltado semántico de <span class="application">KDevelop</span> tendrá preferencia sobre el resaltado del editor en caso de conflicto.</p></li></ul></div></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="working-with-source-code.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="navigating-in-source-code.html">Siguiente</a></td></tr><tr><td class="prevCell">Trabajar con el código fuente </td><td class="upCell">Trabajar con el código fuente</td><td class="nextCell"> Navegar por el código fuente</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="navigating-in-source-code.html"><html><head><title>Navegar por el código fuente</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="working-with-source-code.html" title="Capítulo 3. Trabajar con el código fuente"><link rel="prev" href="exploring-source-code.html" title="Exploración del código fuente"><link rel="next" href="writing-source-code.html" title="Escritura de código fuente"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Navegar por el código fuente</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="exploring-source-code.html">Anterior</a></td><td class="upCell">Trabajar con el código fuente</td><td class="nextCell"><a accesskey="n" href="writing-source-code.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="navigating-in-source-code"></a>Navegar por el código fuente</h2></div></div></div><p>En la sección anterior hemos hablado sobre cómo explorar el código fuente, <abbr class="abbrev">es decir</abbr>, de cómo obtener información sobre símbolos, archivos y proyectos. El siguiente paso sería, pues, desplazarse por su base de código fuente, <abbr class="abbrev">es decir</abbr>, navegar por ella. De nuevo, existen diferentes niveles en los que esto es posible: local, dentro de un archivo y dentro de un proyecto.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Puede acceder a muchas de las formas de navegar a través del código desde el menú <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Navegar</span></span> de la ventana principal de <span class="application">KDevelop</span>.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="local-navigation"></a>Navegación local</h3></div></div></div><p><span class="application">KDevelop</span> es mucho más que un editor, pero <span class="emphasis"><em>también</em></span> es un editor de código fuente. Como tal, puede mover el cursor arriba, abajo, a la izquierda y a la derecha de un archivo de código fuente, por supuesto. También puede usar las teclas <span class="keycap"><strong>RePág</strong></span> y <span class="keycap"><strong>AvPág</strong></span> y otras órdenes características de cualquier útil editor.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="file-scope-navigation-and-outline-mode"></a>Navegación en el ámbito de archivos y modo de esquema</h3></div></div></div><p>En el ámbito de archivos, <span class="application">KDevelop</span> ofrece diversas posibilidades de navegar a través del código fuente. Por ejemplo:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Esquema</span></span>: Puede obtener un esquema de lo que hay en el archivo actual de al menos tres modos diferentes: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>Si pulsa en el campo de texto <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Esquema</span></span> que hay en la parte superior derecha de la ventana principal o si pulsa <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>N</strong></span>, se abre un menú desplegable que lista todas las declaraciones de funciones y de clases: </p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-19.png"><div class="caption"><p></p></div></div></div><p> A continuación puede seleccionar a cual de ellas saltar o (si hay muchas) comenzar a teclear cualquier texto que deba aparecer en los nombres que se muestran; en este caso, a medida que va tecleando, la lista se va haciendo cada vez más pequeña para eliminar los nombres que no coincidan con el texto que está escribiendo hasta que pueda seleccionar una de las entradas. </p></li><li class="listitem"><p>Si posiciona el cursor en el ámbito de un archivo (<abbr class="abbrev">es decir</abbr> fuera de cualquier declaración o definición de función o clase) mientras tiene abierta la herramienta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Navegador de código</span></span>: </p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-16.png"><div class="caption"><p></p></div></div></div><p> Esto también le proporciona un esquema de lo que está ocurriendo en el archivo actual, y le permite seleccionar el lugar al que desea saltar. </p></li><li class="listitem"><p>Si sitúa el puntero del ratón sobre la pestaña de uno de los archivos abiertos también se muestra un esquema del archivo en dicha pestaña. </p></li></ul></div><p>
</p></li><li class="listitem"><p>Los archivos de código fuente se organizan como una lista de declaraciones o definiciones de funciones. Si pulsa <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>RePág</strong></span> y <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>AvPág</strong></span> podrá saltar a la definición de la anterior o siguiente función de este archivo. </p></li></ul></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="project-and-session-scope-navigation--semantic-navigation"></a>Navegación en el ámbito del proyecto y de la sesión: navegación semántica</h3></div></div></div><p>Como se ha mencionado en otras partes, <span class="application">KDevelop</span> no suele considerar los archivos de código fuente de forma individual, sino que contempla los proyectos como un todo (o, mejor, todos los proyectos que forman parte de la sesión actual). Como consecuencia, ofrece muchas posibilidades para navegar a través de todos los proyectos. Algunas de ellas derivan de lo que ya se ha discutido en la sección sobre <a class="link" href="exploring-source-code.html" title="Exploración del código fuente">Exploración del código fuente</a>, mientras que otras son realmente diferentes. El punto en común reside en que estas funcionalidades de navegación están basadas en un <span class="emphasis"><em>entendimiento semántico</em></span> del código fuente (<abbr class="abbrev">es decir</abbr>, le ofrecen algo que necesita analizar proyectos completos y conectar datos). La lista siguiente muestra algunos modos de navegación a través del código fuente que puede estar distribuido en un gran número de archivos:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Como se ha visto en la sección sobre <a class="link" href="exploring-source-code.html" title="Exploración del código fuente">Exploración del código fuente</a>, puede obtener una ayuda emergente con información sobre espacios de nombres, clases, funciones o variables individuales con solo situar el cursor del ratón sobre dichos elementos o manteniendo pulsada la tecla <span class="keycap"><strong>Alt</strong></span> durante un rato. Aquí tiene un ejemplo: </p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-14.png"></div></div><p> Si pulsa sobre los enlaces de la declaración de un símbolo o expande la lista de usos podrá saltar a dichas posiciones, abriendo su respectivo archivo si es necesario y situando el cursor en la correspondiente posición. Puede conseguir un efecto similar usando la herramienta del <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Navegador de código</span></span>, como se ha discutido anteriormente. </p></li><li class="listitem"><p>Un modo más rápido de ir a la declaración de un símbolo sin necesidad de pulsar los enlaces de la ayuda emergente consiste en activar temporalmente el <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">modo de exploración del código</span></span> manteniendo pulsada la tecla <span class="keycap"><strong>Alt</strong></span> o la tecla <span class="keycap"><strong>Ctrl</strong></span>. En este modo es posible pulsar directamente sobre cualquier símbolo del editor para ir a su declaración. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Apertura rápida</span></span>: un modo muy potente de saltar a otros archivos o posiciones consiste en usar los diversos métodos de <span class="emphasis"><em>apertura rápida</em></span> de <span class="application">KDevelop</span>. Existen cuatro versiones de ellos: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Apertura rápida de clase</span></span> (<span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navegar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Apertura rápida de clase</span></span> o <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>C</strong></span>): obtendrá una lista de todas las clases de la sesión actual. Comience a teclear el nombre de la clase y la lista le mostrará solo las que realmente se ajusten a lo que vaya escribiendo. Si la lista es lo suficientemente corta, seleccione un elemento usando las teclas arriba y abajo para que <span class="application">KDevelop</span> le lleve al lugar donde se haya declarado la clase. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Apertura rápida de función</span></span> (<span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navegar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Apertura rápida de función</span></span> o <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>M</strong></span>): obtendrá una lista de todas las funciones (miembro) que forman parte de los proyectos de la sesión actual, donde podrá seleccionar un elemento del mismo modo que se ha descrito anteriormente. Tenga en cuenta que esta lista puede incluir tanto declaraciones como definiciones de funciones. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Apertura rápida de archivo</span></span> (<span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navegar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Apertura rápida de archivo</span></span> o <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>O</strong></span>): obtendrá una lista de todos los archivos que forman parte de los proyectos de la sesión actual, donde podrá seleccionar un elemento del mismo modo que se ha descrito anteriormente. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Apertura rápida universal</span></span> (<span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navegar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Apertura rápida</span></span> o <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Q</strong></span>): si olvida la combinación de teclas que está enlazada a las acciones anteriores, esta es la navaja suiza universal que necesita (le muestra una lista combinada de todos los archivos, funciones, clases y otras cosas de entre las que puede seleccionar una de ellas). </p></li></ul></div><p>
</p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Saltar a la declaración/definición</span></span>: cuando se está implementando una función (miembro), a menudo es necesario volver al punto donde se ha declarado la función, por ejemplo para mantener la lista de los argumentos de la función sincronizada entre la declaración y la definición, o para actualizar la documentación. Para ello, sitúe el cursor sobre el nombre de la función y seleccione <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navegar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Saltar a la declaración</span></span> (o pulse <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>.</strong></span>) para ir al lugar donde se ha declarado la función. Existen diversos modos de volver al lugar original: </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>Seleccionando <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navegar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Saltar a definición</span></span> (o pulsando <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>,</strong></span>). </p></li><li class="listitem"><p>Seleccionando <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navegar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Anterior contexto visitado</span></span> (o pulsando <span class="keycap"><strong>Meta</strong></span>+<span class="keycap"><strong>Izquierda</strong></span>), como se describe a continuación. </p></li></ul></div><p>
</p></li></ul></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>El salto a la declaración de un símbolo no solo funciona cuando sitúa el cursor sobre el nombre de la función que esté implementando en un momento dado. Además, también funciona con otros símbolos: si sitúa el cursor sobre una variable (local, global o miembro) y salta a su declaración, también lo llevará al lugar donde se declara. De modo similar, puede situar el cursor sobre el nombre de una clase (por ejemplo, en una variable de declaración de función) y saltar al lugar donde se declara.</p></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Cambiar entre declaración/definición</span></span>: en el ejemplo anterior, para ir la lugar de la declaración de la función actual, necesita primero colocar el cursor sobre el nombre de la función. Para evitar este paso, puede seleccionar <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navegación</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Cambiar entre definición/declaración</span></span> (o pulse <span class="keycap"><strong>Mayúsculas</strong></span>+<span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>C</strong></span>) para ir a la declaración de la función dentro de la que está el cursor en ese momento. Si selecciona la misma entrada de menú por segunda vez, volverá al lugar donde se define la función. </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Uso anterior/siguiente</span></span>: si sitúa el cursor sobre el nombre de una variable local y selecciona <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navegación</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Siguiente uso</span></span> (o pulsa <span class="keycap"><strong>Meta</strong></span>+<span class="keycap"><strong>Mayúsculas</strong></span>+<span class="keycap"><strong>Derecha</strong></span>) irá al siguiente uso de dicha variable en el código. (Tenga en cuenta que esto no busca solo la siguiente coincidencia del nombre de la variable, sino que también tiene en cuenta que las variables con el mismo nombre que estén en diferentes ámbitos son distintas). Esto mismo también funciona con los nombres de las funciones. Si selecciona <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navegación</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Anterior uso</span></span> (o pulsa <span class="keycap"><strong>Meta</strong></span>+<span class="keycap"><strong>Mayúsculas</strong></span>+<span class="keycap"><strong>Izquierda</strong></span>) irá al anterior uso de un símbolo. </p></li></ul></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Para ver una lista con todos los usos de un nombre sobre los que funcionan estas órdenes, sitúe el cursor sobre él y abra el visor de la herramienta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Navegador de código</span></span>, o bien mantenga pulsada la tecla <span class="keycap"><strong>Alt</strong></span>. Esto se explica con mayor detalle en la sección sobre <a class="link" href="exploring-source-code.html#file-scope-information" title="Información del ámbito de los archivos">exploración del código</a>.</p></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>La <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">lista de contexto</span></span>: los navegadores web tienen esta función con la que se puede ir atrás y adelante en la lista de las páginas web recientemente visitadas. <span class="application">KDevelop</span> posee este mismo tipo de funcionalidad, excepto que, en lugar de páginas web, visita <span class="emphasis"><em>contextos</em></span>. Un contexto es la posición actual del cursor, que puede cambiar navegando con cualquier método excepto órdenes de cursor (por ejemplo, pulsando en una dirección proporcionada por una ayuda emergente, en la vista de la herramienta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Navegador de código</span></span>, cualquiera de las opciones del menú <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Navegación</span></span> o cualquier otra orden de navegación. El uso de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navegación</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Contexto visitado anteriormente</span></span> (<span class="keycap"><strong>Meta</strong></span>+<span class="keycap"><strong>Izquierda</strong></span>) y <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Navegación</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Siguiente contexto visitado</span></span> (<span class="keycap"><strong>Meta</strong></span>+<span class="keycap"><strong>Derecha</strong></span>) le lleva de un lado a otro de la lista de contextos visitados, del mismo modo que los botones <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">atrás</span></span> y <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">adelante</span></span> de un navegador le llevan a la página web anterior o siguiente de la lista de páginas visitadas. </p></li><li class="listitem"><p>Finalmente, hay vistas de herramientas que le permiten navegar a diferentes lugares de su base de código fuente. Por ejemplo, la herramienta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Clases</span></span> le proporciona una lista de todos los espacios de nombres y clases de todos los proyectos de ls sesión actual, y le permite desplegar sus elementos para ver las funciones y variables miembros de cada una de las clases: </p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-17.png"><div class="caption"><p></p></div></div></div><p> Si hace doble clic sobre un elemento (o si usa la correspondiente opción del menú de contexto que se muestra al pulsar el botón derecho del ratón) puede saltar a la posición de la declaración de dicho elemento. Otras herramientas permiten hacer cosas similares; por ejemplo, la herramienta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Proyectos</span></span> proporciona una lista de los archivos que forman parte de una sesión: </p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-13.png"><div class="caption"><p></p></div></div></div><p> De nuevo, si hace doble clic sobre un archivo, se abrirá. </p></li></ul></div></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="exploring-source-code.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="writing-source-code.html">Siguiente</a></td></tr><tr><td class="prevCell">Exploración del código fuente </td><td class="upCell">Trabajar con el código fuente</td><td class="nextCell"> Escritura de código fuente</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="writing-source-code.html"><html><head><title>Escritura de código fuente</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="working-with-source-code.html" title="Capítulo 3. Trabajar con el código fuente"><link rel="prev" href="navigating-in-source-code.html" title="Navegar por el código fuente"><link rel="next" href="modes-and-working-sets.html" title="Modos y conjuntos de trabajo"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Escritura de código fuente</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="navigating-in-source-code.html">Anterior</a></td><td class="upCell">Trabajar con el código fuente</td><td class="nextCell"><a accesskey="n" href="modes-and-working-sets.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="writing-source-code"></a>Escritura de código fuente</h2></div></div></div><p>Debido a que <span class="application">KDevelop</span> entiende el código fuente de sus proyectos, le puede ayudar al escribir más código fuente. Lo siguiente ilustra algunas de las formas en las que hace esto.</p><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="auto-completion"></a>Terminación automática</h3></div></div></div><p>Probablemente, una de las características más útiles cuando se escribe código es la terminación automática. Considere, por ejemplo, el siguiente código:</p><pre class="programlisting">class Car {
  // ...
  public:
    std::string get_color () const;
};
void foo()
{
  Car my_ride;
  // ... hacer algo en esta variable...
  std::string color = my_ride.ge
</pre><p>En la última línea, <span class="application">KDevelop</span> recordará que la variable <code class="varname">my_ride</code> es de tipo <code class="varname">Car</code>, y ofrecerá completar de forma automática el nombre de la función miembro <code class="varname">ge</code> como <code class="varname">get_color</code>. De hecho, todo lo que tiene que hacer es seguir tecleando hasta que la función de terminación automática haya reducido el número de coincidencias a una, y luego pulsar la tecla <span class="keysym">Intro</span>:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-42.png"><div class="caption"><p></p></div></div></div><p>Tenga en cuenta que puede hacer clic sobre la ayuda emergente para obtener más información sobre la función, además de su tipo de valor devuelto y de si es pública o no:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-43.png"><div class="caption"><p></p></div></div></div><p>La terminación automática puede ahorrarle bastantes pulsaciones de teclas si su proyecto usa nombres largos para funciones y variables; además, evita que escriba mal estos nombres (y los consiguientes errores del compilador) y hace que sea más fácil recordar los nombres exactos de las funciones; por ejemplo, si todos sus «getters» comienzan por <code class="varname">get_</code>, la función de terminación automática solo le mostrará la lista de los posibles «getters» en cuanto haya tecleado las cuatro primeras letras, probablemente recordándole durante el proceso cuál de las funciones es la correcta. Tenga en cuenta que para que funcione la terminación automática, no hace falta que la declaración de la clase <code class="varname">Car</code> ni la variable <code class="varname">my_ride</code> estén en el mismo archivo donde esté escribiendo código. <span class="application">KDevelop</span> tiene que saber que dichas clases y variables están conectadas; <abbr class="abbrev">es decir</abbr>, los archivos en los que se realizan estas conexiones tienen que ser parte del proyecto en el que esté trabajando.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p><span class="application">KDevelop</span> no siempre sabe cuándo debe ayudarle a completar código. Si la ayuda emergente de terminación automática no se muestra, pulse <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Espacio</strong></span> para abrir de forma manual la lista de terminaciones. En general, para que funcione la terminación automática, <span class="application">KDevelop</span> necesita analizar sus archivos de código fuente. Esto se realiza en segundo plano con todos los archivos que forman parte de los proyectos de la sesión actual en cuanto inicia <span class="application">KDevelop</span>, así como cuando deja de teclear durante una fracción de segundo (esta pausa se puede configurar).</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p><span class="application">KDevelop</span> analiza únicamente los archivos que considera de código fuente, según se determina por el tipo MIME del archivo. Este tipo no se fija antes de la primera vez que se guarda un archivo; por lo tanto, cuando cree un nuevo archivo y comience a escribir código en él, no se activará el análisis para la terminación automática hasta que lo haya guardado por primera vez.</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Al igual que en la nota anterior, para que funcione la terminación automática, <span class="application">KDevelop</span> debe ser capaz de encontrar declaraciones en los archivos de cabecera. Para ello, busca en cierto número de rutas por omisión. Si no encuentra automáticamente un archivo de cabecera, subrayará en rojo su nombre; en este caso, pulse con el botón derecho del ratón sobre él para indicarle a <span class="application">KDevelop</span> de forma explícita dónde puede encontrar dicho archivo y qué información proporciona.</p></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>La configuración de la terminación automática se describe en <a class="link" href="customizing-code-auto-completion.html" title="Personalización de la terminación automática de código">esta sección de este manual</a>.</p></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="adding-new-classes-and-implementing-member-functions"></a>Añadir nuevas clases e implementar funciones miembro</h3></div></div></div><p><span class="application">KDevelop</span> tiene un asistente para añadir nuevas clases. El procedimiento se describe en <a class="link" href="code-generation-with-templates.html#creating-a-new-class" title="Creación de una nueva clase">Creación de una nueva clase</a>. Se puede crear una clase sencilla de C++ escogiendo la plantilla de C++ básico en la categoría <code class="filename">Clase</code>. En el asistente podemos escoger algunas funciones miembro predefinidas, como, por ejemplo: un constructor vacío, un constructor de copia o un destructor. </p><p>Tras completar el asistente, se crean los nuevos archivos y se abren en el editor. El archivo de cabecera ya contiene salvaguardas de inclusión y la nueva clase posee todas las funciones miembro que hayamos seleccionado. Los dos siguientes pasos deberían ser documentar la clase y sus funciones miembro, y luego implementarlas. Más adelante hablaremos sobre cómo documentar clases y funciones. Para implementar las funciones especiales que ya hemos añadido, iremos la pestaña <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">bus.cpp</span></span>, donde ya se ha proporcionado un esqueleto para las funciones.</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-30.png"><div class="caption"><p></p></div></div></div><p>Para añadir nuevas funciones miembro, vuelva a la pestaña <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">bus.h</span></span> y añada el nombre de una función. Por ejemplo, añadamos esta:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-31.png"><div class="caption"><p></p></div></div></div><p>Tenga en cuenta cómo hemos empezado ya con la implementación. No obstante, en muchos estilos de programación, la función no se debe implementar en el archivo de cabecera sino en el correspondiente archivo .cpp. Para ello, sitúe el cursor sobre el nombre de la función y seleccione <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Código</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Mover al código fuente</span></span> o pulse <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>S</strong></span>. Esto eliminará del archivo de cabecera el código que hay entre las llaves (sustituyéndolo por un punto y coma como es debido para terminar la declaración de la función) y lo moverá al archivo de código fuente:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-32.png"><div class="caption"><p></p></div></div></div><p>Tenga en cuenta cómo hemos comenzado a escribir y que queremos insinuar que la variable <code class="varname">students</code> debe ser probablemente miembro de la clase <code class="varname">Bus</code>, aunque aún no la hemos añadido. Note también cómo la subraya <span class="application">KDevelop</span> para dejar claro que no sabe nada sobre la variable. Pero este problema se puede resolver: si pulsa sobre el nombre de la variable se muestra la siguiente ayuda emergente:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-33.png"><div class="caption"><p></p></div></div></div><p>(Se puede conseguir lo mismo haciendo clic sobre ella con el botón derecho y seleccionando <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Resolver: Declarar como</span></span>). Seleccionemos <span class="quote">“<span class="quote">3 - private unsigned int</span>”</span> (con el ratón o pulsando <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>3</strong></span>) y veamos cómo se muestra en el archivo de cabecera:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-34.png"><div class="caption"><p></p></div></div></div><p>Vale la pena tener en cuenta que <span class="application">KDevelop</span> extrae el tipo de la variable a declarar de la expresión usada para inicializarla. Por ejemplo, si hemos escrito la adición del siguiente modo ambiguo, habría sugerido declarar la variable de tipo <code class="varname">double</code>:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-35.png"><div class="caption"><p></p></div></div></div><p>Como observación final, el método que usa <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Código</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Mover al código fuente</span></span> no siempre inserta la nueva función miembro donde usted desearía. Por ejemplo, es posible que quisiera marcarla como <code class="varname">inline</code> y situarla al final del archivo de cabecera. En este caso, escriba la declaración al principio escribiendo la definición de la función como sigue:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-36.png"><div class="caption"><p></p></div></div></div><p><span class="application">KDevelop</span> ofrece de forma automática todas las posibles terminaciones de lo que debe aparecer aquí. Si selecciona una de las dos entradas <code class="varname">add_students</code>, se muestra el siguiente código que ya rellena la lista de argumentos completa:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-37.png"><div class="caption"><p></p></div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>En el ejemplo, si se acepta una de las opciones, la herramienta de terminación automática ofrece la firma correcta; pero, por desgracia, borra el marcador <code class="varname">inline</code> que ya estaba escrito. Se ha informado de este problema como <a class="ulink" href="https://bugs.kde.org/show_bug.cgi?id=274245" target="_top">Bug 274245 de <span class="application">KDevelop</span></a>.</p></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="documenting-declarations"></a>Documentar declaraciones</h3></div></div></div><p>El buen código está bien documentado, tanto a nivel de la implementación de algoritmos dentro de las funciones como a nivel de la interfaz — <abbr class="abbrev">es decir</abbr>, las clases, las funciones (miembro y globales) y las variables (miembro y globales) deben estar documentadas para explicar su propósito, los posibles valores de los argumentos, las condiciones previas y posteriores, <abbr class="abbrev">etc.</abbr> Por lo que a la documentación de la interfaz se refiere, <a class="ulink" href="http://www.doxygen.org" target="_top">doxygen</a> se ha convertido en el estándar de facto para formatear comentarios que luego se pueden extraer y mostrar en páginas web en las que se pueden realizar búsquedas.</p><p><span class="application">KDevelop</span> permite usar este estilo de comentarios mediante un acceso rápido de teclado para generar la infraestructura de los comentarios que documentan una clase o una función miembro. Por ejemplo, suponiendo que ya ha escrito el siguiente código:</p><pre class="programlisting">class Car {
  public:
    std::string get_color () const;
};
</pre><p>
</p><p>Ahora desea añadir documentación tanto a la clase como a la función miembro. Para ello, mueva el cursor a la primera línea y seleccione <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Código</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Documentar declaración</span></span> o pulse <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Mayúsculas</strong></span>+<span class="keycap"><strong>D</strong></span>. <span class="application">KDevelop</span> le responderá con lo siguiente:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-23.png"><div class="caption"><p></p></div></div></div><p>El cursor ya está en el área de color gris para que pueda rellenar la descripción corta (tras la palabra clave de doxygen <code class="varname">@brief</code>) de esta clase. Después puede continuar añadiendo documentación a este comentario que dé una descripción más detallada de lo que hace la clase:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-24.png"><div class="caption"><p></p></div></div></div><p>Mientras el editor esté dentro del comentario, el texto comentado se resalta en verde (y volverá a su color normal en cuanto mueva el cursor fuera del comentario). Cuando llegue al final de una línea, pulse <span class="keysym">Intro</span> para que <span class="application">KDevelop</span> cree de forma automática una nueva línea que comience con un asterisco y sitúe el cursor dos caracteres más a la derecha.</p><p>Ahora vamos a comentar la función miembro, situando de nuevo el cursor sobre la línea de la declaración y seleccionando <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Código</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Documentar declaración</span></span> o pulsando <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Mayúsculas</strong></span>+<span class="keycap"><strong>D</strong></span>:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-25.png"><div class="caption"><p></p></div></div></div><p>De nuevo, <span class="application">KDevelop</span> genera automáticamente el esqueleto del comentario, incluyendo la documentación para la función, así como el tipo de dato que devuelve. En el caso actual, el nombre de la función es bastante autoexplicativo, pero a veces los argumentos de la función pueden no estar presentes y se deben comentar de forma individual. Para ilustrar este punto, consideremos una función un poco más interesante y el comentario que <span class="application">KDevelop</span> genera de forma automática:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-26.png"><div class="caption"><p></p></div></div></div><p>Aquí, el comentario sugerido ya contiene todos los campos de Doxygen para los distintos parámetros, por ejemplo.</p></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="renaming-variables-functions-and-classes"></a>Cambiar el nombre de variables, funciones y clases</h3></div></div></div><p>A veces es necesario cambiar el nombre de una función, clase o variable. Por ejemplo, supongamos que ya tenemos esto:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-38.png"><div class="caption"><p></p></div></div></div><p>Entonces caemos en la cuenta de que no nos gusta el nombre <code class="varname">remove_students</code> y que hubiera sido mejor llamarla, por ejemplo, <code class="varname">throw_out_students</code>. Podríamos realizar una búsqueda con sustitución del nombre, pero eso conllevaría un par de problemas:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>La función se puede usar en más de un archivo. </p></li><li class="listitem"><p>Lo único que realmente queremos hacer es cambiar el nombre de esta función y no tocar otras funciones que pudieran tener el mismo nombre y que estuvieran declaradas en otras clases o espacios de nombres. </p></li></ul></div><p>Ambos problemas se pueden solucionar situando el cursor sobre cualquiera de las apariciones del nombre de la función y seleccionando <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Código</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Cambiar nombre de la declaración</span></span> (o pulsando con el botón derecho del ratón sobre su nombre y seleccionando la opción <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Cambiar nombre de Bus::remove_students</span></span>). Esto mostrará un diálogo donde podrá introducir el nuevo nombre de la función y donde también podrá ver todos los lugares donde se está usando realmente la función:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-39.png"><div class="caption"><p></p></div></div></div></div><div class="sect2"><div class="titlepage"><div><div><h3 class="title"><a name="code-snippets"></a>Fragmentos de código</h3></div></div></div><p>La mayoría de los proyectos contienen trozos de código que es necesario escribir frecuentemente en el código fuente. Algunos ejemplos son: para los escritores de compiladores, un bucle para todas las instrucciones; para los escritores de interfaces de usuario, comprobaciones de que la entrada del usuario es válida y, en caso contrario, mostrar un mensaje de error; en el proyecto del autor de estas líneas, sería código del tipo</p><pre class="programlisting">for (typename Triangulation::active_cell_iterator
       cell = triangulation.begin_active();
     cell != triangulation.end(); ++cell)
  ... hacer algo con la celda...
</pre><p>
</p><p>En lugar de teclear este tipo de texto una y otra vez (con los errores tipográficos repetitivos que se suelen cometer), la herramienta de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Fragmentos de código</span></span> de <span class="application">KDevelop</span> puede serle de ayuda. Para ello, abra el visor de la herramienta (consulte <a class="link" href="working-with-source-code.html#tools-and-views" title="Herramientas y vistas">Herramientas y visores</a> si el botón correspondiente aún no está presente en el borde de la ventana). A continuación, pulse el botón <span class="quote">“<span class="quote">Añadir repositorio</span>”</span> (un nombre poco apropiado, ya que le permite crear una colección identificada por su nombre que contiene fragmentos de código fuente para un propósito particular, como, <abbr class="abbrev">por ejemplo</abbr>, código fuente de C++) para crear un repositorio vacío. Pulse después <span class="inlinemediaobject"><img src="Icon-list-add.png"></span> para añadir un fragmento de código, con lo que se le mostrará un diálogo como el siguiente:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-40.png"><div class="caption"><p></p></div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>El nombre del fragmento no debe contener espacios ni otros caracteres especiales, pues debe parecerse a cualquier nombre de función o variable normal (por motivos que se aclararán en el siguiente párrafo)</p></div><p>Para usar un fragmento definido de este modo cuando esté editando código fuente, escriba el nombre de dicho fragmento como haría con cualquier otro nombre de función o de variable. Este nombre también estará disponible para la terminación automática de texto (lo que significa que no hay ningún peligro al usar un nombre largo y descriptivo para un fragmento, como el anterior), por lo que cuando acepte la sugerencia de la ayuda emergente de terminación automática (por ejemplo, pulsando la tecla <span class="keysym">Intro</span>), la parte del nombre del fragmento ya introducida se sustituirá con todo el texto que contiene el fragmento de código, que se mostrará probablemente sangrado:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-41.png"><div class="caption"><p></p></div></div></div><p>Tenga en cuenta que para que esto funcione el visor de la herramienta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Fragmentos de código</span></span> no debe estar abierto ni visible: solamente necesitará el visor de esta herramienta para definir nuevos fragmentos de código. Un modo alternativo, aunque menos conveniente, de expandir un fragmento de código consiste en pulsar sobre él en el visor de la herramienta.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Los fragmentos de código son mucho más potentes de lo que se ha explicado. Para una descripción completa de lo que se puede hacer con ellos, consulte la <a class="ulink" href="https://userbase.kde.org/Special:myLanguage/KDevelop4/Manual/Tool_list/Snippets" target="_top">documentación detallada de la herramienta de fragmentos de código</a>.</p></div></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="navigating-in-source-code.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="modes-and-working-sets.html">Siguiente</a></td></tr><tr><td class="prevCell">Navegar por el código fuente </td><td class="upCell">Trabajar con el código fuente</td><td class="nextCell"> Modos y conjuntos de trabajo</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="modes-and-working-sets.html"><html><head><title>Modos y conjuntos de trabajo</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="working-with-source-code.html" title="Capítulo 3. Trabajar con el código fuente"><link rel="prev" href="writing-source-code.html" title="Escritura de código fuente"><link rel="next" href="some-useful-keyboard-shortcuts.html" title="Algunos accesos rápidos de teclado útiles"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Modos y conjuntos de trabajo</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="writing-source-code.html">Anterior</a></td><td class="upCell">Trabajar con el código fuente</td><td class="nextCell"><a accesskey="n" href="some-useful-keyboard-shortcuts.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="modes-and-working-sets"></a>Modos y conjuntos de trabajo</h2></div></div></div><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop4_noworkingset.png"><div class="caption"><p></p></div></div></div><p>Si ha llegado hasta aquí, eche un vistazo a la parte superior derecha de la ventana principal de <span class="application">KDevelop</span>. Como se muestra en la imagen, verá que existen tres <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">modos</span></span> en los que puede encontrarse <span class="application">KDevelop</span>: <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Código</span></span> (el modo que describimos en este capitulo sobre el trabajo con código fuente), <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Depurar</span></span> (consulte <a class="link" href="debugging-programs-in-kdevelop.html" title="Capítulo 7. Depuración de programas en KDevelop">Depuración de programas</a>) y <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Revisar</span></span> (consulte <a class="link" href="working-with-version-control-systems.html" title="Capítulo 8. Trabajar con sistemas de control de versiones">Trabajar con sistemas de control de versiones</a>).</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop4_sessionsprojectsworkingsets.png"><div class="caption"><p></p></div></div></div><p>Cada modo tiene su propio conjunto de herramientas apiladas en el perímetro de la ventana principal, así como un <span class="emphasis"><em>conjunto de trabajo</em></span> de archivos y documentos actualmente abiertos. Aún más, cada uno de estos conjuntos de trabajo está asociado con una sesión actual; <abbr class="abbrev">es decir</abbr>, tenemos la relación mostrada anteriormente. Tenga en cuenta que los archivos del conjunto de trabajo proceden de la misma sesión, aunque pueden pertenecer a diferentes proyectos que sean parte de la misma sesión.</p><p>Cuando abre <span class="application">KDevelop</span> por primera vez, el conjunto de trabajo está vacío (no hay ningún archivo abierto). Pero, a medida que va abriendo archivos para editarlos (o para depurarlos o revisarlos en los otros modos), el conjunto de trabajo va creciendo. Cuando su conjunto de trabajo no esté vacío verá un símbolo en la pestaña, como se muestra más abajo. También notará que cuando cierre <span class="application">KDevelop</span> y vuelva a abrirlo otra vez, el conjunto de trabajo se habrá guardado y restaurado; <abbr class="abbrev">es decir</abbr>, tendrá el mismo conjunto de archivos abiertos.</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-10.png"><div class="caption"><p></p></div></div></div><p>Si sitúa el puntero del ratón sobre el símbolo del conjunto de trabajo, obtendrá una ventana emergente que le mostrará los archivos actualmente abiertos en dicho conjunto de trabajo (en este caso, los archivos <code class="varname">step-32.cc</code> y <code class="varname">step-1.cc</code>). Si pulsa en el signo menos de color rojo se cerrará la pestaña del archivo correspondiente. Tal vez más importante, si pulsa sobre el correspondiente botón que lo identifica, podrá <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">cerrar</span></span> todo el conjunto de trabajo a la vez (<abbr class="abbrev">es decir</abbr>, cerrará todos los archivos actualmente abiertos). La importancia de cerrar un conjunto de trabajo, no obstante, reside en que no solo se cierran todos los archivos que lo componen, sino que realmente se guardan todos los archivos y se abre un nuevo conjunto de trabajo vacío. Puede ver esto a continuación:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-11.png"><div class="caption"><p></p></div></div></div><p>Note los dos símbolos a la izquierda de las pestañas de los tres modos (el corazón y el símbolo desconocido que hay a su izquierda). Cada uno de estos símbolos representa un conjunto de trabajo guardado, además del conjunto de trabajo actualmente abierto. Si sitúa el puntero del ratón sobre el símbolo del corazón, obtendrá algo semejante a lo siguiente:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-12.png"><div class="caption"><p></p></div></div></div><p>Le muestra que el conjunto de trabajo correspondiente contiene dos archivos y sus correspondientes nombres de proyecto: <code class="varname">Makefile</code> y <code class="varname">changes.h</code>. Si pulsa <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Cargar</span></span> se cerrará y guardará el conjunto de trabajo actual (que, como se muestra aquí, contiene los archivos abiertos <code class="varname">tria.h</code> y <code class="varname">tria.cc</code>) y se abrirá en su lugar el conjunto de trabajo seleccionado. También puede borrar de forma permanente un conjunto de trabajo, lo que hace que desaparezca de la lista de conjuntos de trabajo guardados.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="writing-source-code.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="some-useful-keyboard-shortcuts.html">Siguiente</a></td></tr><tr><td class="prevCell">Escritura de código fuente </td><td class="upCell">Trabajar con el código fuente</td><td class="nextCell"> Algunos accesos rápidos de teclado útiles</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="some-useful-keyboard-shortcuts.html"><html><head><title>Algunos accesos rápidos de teclado útiles</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="working-with-source-code.html" title="Capítulo 3. Trabajar con el código fuente"><link rel="prev" href="modes-and-working-sets.html" title="Modos y conjuntos de trabajo"><link rel="next" href="code-generation-with-templates.html" title="Capítulo 4. Generación de código con plantillas"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Algunos accesos rápidos de teclado útiles</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="modes-and-working-sets.html">Anterior</a></td><td class="upCell">Trabajar con el código fuente</td><td class="nextCell"><a accesskey="n" href="code-generation-with-templates.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="some-useful-keyboard-shortcuts"></a>Algunos accesos rápidos de teclado útiles</h2></div></div></div><p>El editor de <span class="application">KDevelop</span> sigue los accesos rápidos de teclado típicos para todas las operaciones normales de edición. No obstante, también permite usar cierto número de operaciones más avanzadas cuando se edita código fuente, muchas de las cuales están ligadas a ciertas combinaciones particulares de teclas. Las siguientes son particularmente interesantes en muchos casos:</p><p>
</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1"><col class="c2"></colgroup><thead><tr><th colspan="2">Saltar a través del código</th></tr></thead><tbody><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>O</strong></span></td><td>Apertura rápida de archivo: introduzca parte de un nombre de archivo y seleccione en todos árboles de directorios de los archivos de los proyectos de la sesión actual que coincidan con la cadena introducida: se abrirá el archivo que seleccione.</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>C</strong></span></td><td>Apertura rápida de clase: introduzca parte del nombre de una clase y seleccione entre todos los nombres de clases que coincidan; el cursor saltará a la declaración de la clase que seleccione.</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>M</strong></span></td><td>Apertura rápida de función: introduzca parte del nombre de una función (miembro) y seleccione entre los nombres que coincidan; tenga en cuenta que la lista muestra tanto declaraciones como definiciones, y que el cursor saltará al elemento seleccionado.</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Q</strong></span></td><td>Apertura rápida universal: escriba cualquier cosa (nombre de archivo, nombre de clase, nombre de función) para obtener una lista de todo lo que coincida para poder seleccionarlo.</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>N</strong></span></td><td>Esquema: Proporciona una lista de todas las cosas que están ocurriendo en este archivo. Por ejemplo, declaraciones de clases y definiciones de funciones.</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>,</strong></span></td><td>Saltar a la definición de una función si el cursor está actualmente sobre la declaración de una función</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>.</strong></span></td><td>Saltar a la declaración de una función o variable si el cursor está actualmente en una definición de función</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>RePág</strong></span></td><td>Saltar a la siguiente función</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>AvPág</strong></span></td><td>Saltar a la función anterior</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>G</strong></span></td><td>Ir a una línea</td></tr></tbody></table></div><p>
</p><p>
</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1"><col class="c2"></colgroup><thead><tr><th colspan="2">Búsqueda y sustitución</th></tr></thead><tbody><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>F</strong></span></td><td>Buscar</td></tr><tr><td><span class="keycap"><strong>F3</strong></span></td><td>Encontrar siguiente</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>R</strong></span></td><td>Sustituir</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>F</strong></span></td><td>Buscar o sustituir en múltiples archivos</td></tr></tbody></table></div><p>
</p><p>
</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1"><col class="c2"></colgroup><thead><tr><th colspan="2">Otras cosas</th></tr></thead><tbody><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>_</strong></span></td><td>Plegar un nivel: compacta un bloque haciendo que no se visualice, por ejemplo, cuando desea concentrarse en una visión más amplia dentro de una función</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>+</strong></span></td><td>Expande un nivel: deshace el plegado anterior</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>D</strong></span></td><td>Comentar el texto seleccionado o la línea actual</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Mayúsculas</strong></span>+<span class="keycap"><strong>D</strong></span></td><td>Comentar el texto seleccionado o la línea actual</td></tr><tr><td><span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>Mayúsculas</strong></span>+<span class="keycap"><strong>D</strong></span></td><td>Documentar la función actual. Si el cursor está sobre una declaración de función o de clases, al pulsar esta tecla se creará un comentario predefinido al estilo de «doxygen» que contiene una lista con todos los parámetros, valores de retorno, <abbr class="abbrev">etc.</abbr></td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>T</strong></span></td><td>Intercambia los caracteres actual y anterior</td></tr><tr><td><span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>K</strong></span></td><td>Borrar la línea actual (nota: no es como en emacs <span class="quote">“<span class="quote">borrar desde aquí hasta el final de la línea</span>”</span>)</td></tr></tbody></table></div><p>
</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="modes-and-working-sets.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="code-generation-with-templates.html">Siguiente</a></td></tr><tr><td class="prevCell">Modos y conjuntos de trabajo </td><td class="upCell">Trabajar con el código fuente</td><td class="nextCell"> Generación de código con plantillas</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="creating-projects-from-scratch.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="exploring-source-code.html">Siguiente</a></td></tr><tr><td class="prevCell">Creación de proyectos desde cero </td><td class="upCell"> </td><td class="nextCell"> Exploración del código fuente</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="code-generation-with-templates.html"><html><head><title>Capítulo 4. Generación de código con plantillas</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="index.html" title="Manual de KDevelop"><link rel="prev" href="some-useful-keyboard-shortcuts.html" title="Algunos accesos rápidos de teclado útiles"><link rel="next" href="creating-a-new-unit-test.html" title="Creación de una nueva prueba unitaria"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Generación de código con plantillas</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="some-useful-keyboard-shortcuts.html">Anterior</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="creating-a-new-unit-test.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="code-generation-with-templates"></a>Capítulo 4. Generación de código con plantillas</h1></div></div></div><p><span class="application">KDevelop</span> usa plantillas para generar archivos de código fuente y para evitar tener que escribir código repetitivo. </p><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="creating-a-new-class"></a>Creación de una nueva clase</h2></div></div></div><p>El uso más común para la generación de código es probablemente la escritura de nuevas clases. Para crear una nueva clase en un proyecto existente, pulse con el botón derecho del ratón en una carpeta del proyecto y elija <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Crear desde plantilla...</span></span>. El mismo diálogo se puede iniciar desde el menú pulsando <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Archivo</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Nuevo desde plantilla...</span></span>, aunque si usa una carpeta del proyecto se ahorrará tener que fijar una URL base para los archivos de salida. Elija <code class="filename">Clase</code> en el visor de selección de categorías y luego el idioma y la plantilla en las otras dos vistas. Tras seleccionar una plantilla para la clase tendrá que especificar los detalles de la nueva clase. </p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-template-selection.png"></div></div><p>
</p><p>En primer lugar, tendrá que especificar un identificador para la nueva clase. Puede ser un nombre sencillo (como <code class="varname">Bus</code>) o un identificador completo con espacios de nombres (como <code class="varname">Transporte::Bus</code>). En el último caso, <span class="application">KDevelop</span> analizará el identificador y separará correctamente los espacios de nombres del nombre real de la clase. En la misma página podrá añadir las clases base para la nueva clase. Es posible que note que algunas plantillas escogen una clase base por sí mismas; si no son de su agrado, puede eliminarlas y/o añadir otras bases. Aquí debe escribir la sentencia de herencia completa, que es dependiente del lenguaje, como <code class="varname">public QObject</code> para C++, <code class="varname">extends AlgunaClase</code> para PHP, o simplemente el nombre de la clase para Python. </p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-template-inheritance.png"></div></div><p>
</p><p>En la siguiente página se le ofrecerá una selección de los métodos virtuales de todas las clases heredadas, así como algunos constructores, destructores y operadores por omisión. Si marca la casilla que hay junto a cada firma de un método se implementará dicho método en la nueva clase. </p><p>Si pulsa <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Siguiente</span></span> se mostrará una página en la que puede añadir miembros a la clase. Dependiendo de la plantilla seleccionada, pueden aparecer en la nueva clase como variables miembro, o la plantilla puede crear propiedades con sus respectivos «setters» y «getters». En un lenguaje para el que los tipos de variables tienen que estar declarados, como C++, debe especificar tanto el tipo como el nombre del miembro, como <code class="varname">int numero</code> o <code class="varname">QString nombre</code>. Para otros lenguajes puede olvidarse del tipo, aunque es una buena práctica introducirlo siempre, ya que la plantilla seleccionada puede seguir haciendo uso de él. </p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-template-members.png"></div></div><p>
</p><p>En las siguientes páginas podrá elegir una licencia para la nueva clase, fijar cualquier opción personalizada que necesite la plantilla seleccionada y configurar las ubicaciones de salida para todos los archivos generados. Si pulsa <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Finalizar</span></span> completará el asistente y se creará la nueva clase. Los archivos generados se abrirán en el editor, por lo que puede comenzar a añadir código fuente en ellos enseguida. </p><p>Tras crear una nueva clase de C++ se le ofrecerá la opción de añadir la clase a un proyecto de destino. Elija un destino en la página del diálogo, o descarte la página y añada los archivos a un destino de forma manual. </p><p>Si elige la plantilla <code class="filename">Objeto de Qt</code>, marca algunos de los métodos por omisión y añade dos variables miembro, la salida debería parecerse a la de la siguiente imagen. </p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-template-result.png"></div></div><p>
</p><p>Puede ver que los datos miembros se convierten en propiedades de Qt, con funciones accesoras y las macros Q_PROPERTY. Los argumentos para las funciones «setters» se pasan como referencias a constantes cuando sea apropiado. Además, se declara una clase privada, así como un puntero privado creado con Q_DECLARE_PRIVATE. Todo esto lo hace la plantilla. Si elige una plantilla diferente en el primer paso, la salida puede ser muy distinta. </p></div><FILENAME filename="creating-a-new-unit-test.html"><html><head><title>Creación de una nueva prueba unitaria</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="code-generation-with-templates.html" title="Capítulo 4. Generación de código con plantillas"><link rel="prev" href="code-generation-with-templates.html" title="Capítulo 4. Generación de código con plantillas"><link rel="next" href="other-files.html" title="Otros archivos"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Creación de una nueva prueba unitaria</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="code-generation-with-templates.html">Anterior</a></td><td class="upCell">Generación de código con plantillas</td><td class="nextCell"><a accesskey="n" href="other-files.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="creating-a-new-unit-test"></a>Creación de una nueva prueba unitaria</h2></div></div></div><p>A pesar de que la mayoría de las infraestructuras de pruebas necesitan que cada prueba también sea una clase, <span class="application">KDevelop</span> incluye un método para simplificar la creación de pruebas unitarias. Para crear una nueva prueba, haga clic con el botón derecho del ratón en la carpeta de un proyecto y elija <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Crear desde plantilla...</span></span>. En la página de selección de plantillas, escoja <code class="filename">Prueba</code> como categoría, y a continuación seleccione el lenguaje de programación y la plantilla, y luego pulse <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Siguiente</span></span>. </p><p>Se le preguntará el nombre de la prueba y por una lista de casos de pruebas. Para los casos de pruebas, solo tiene que especificar una lista de nombre. Algunas infraestructuras de pruebas unitarias, como PyUnit y PHPUnit, necesitan que los casos de pruebas comiencen por un prefijo especial. En <span class="application">KDevelop</span>, la plantilla es la responsable de añadir este prefijo, por lo que no tiene que añadir dicho prefijo a los casos de pruebas en este paso. Tras pulsar <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Siguiente</span></span>, indique la licencia y las ubicaciones de salida para los archivos generados, con lo que la prueba terminará de crearse. </p><p>Las pruebas unitarias creadas de este modo no se añadirán a ningún objetivo de forma automática. Si está usando CTest u otra infraestructura de pruebas, asegúrese de añadir los archivos nuevos al objetivo. </p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="code-generation-with-templates.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="other-files.html">Siguiente</a></td></tr><tr><td class="prevCell">Generación de código con plantillas </td><td class="upCell">Generación de código con plantillas</td><td class="nextCell"> Otros archivos</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="other-files.html"><html><head><title>Otros archivos</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="code-generation-with-templates.html" title="Capítulo 4. Generación de código con plantillas"><link rel="prev" href="creating-a-new-unit-test.html" title="Creación de una nueva prueba unitaria"><link rel="next" href="managing-templates.html" title="Gestión de plantillas"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Otros archivos</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="creating-a-new-unit-test.html">Anterior</a></td><td class="upCell">Generación de código con plantillas</td><td class="nextCell"><a accesskey="n" href="managing-templates.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="other-files"></a>Otros archivos</h2></div></div></div><p>A pesar de que las clases y las pruebas unitarias reciben una atención especial cuando generan código a partir de plantillas, se puede usar el mismo método para cualquier tipo de archivos de código fuente. Por ejemplo, es posible usar una plantilla para el módulo Find de CMake o para un archivo «.deskop». Para ello, elija <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Crear desde plantilla...</span></span> y seleccione la categoría y la plantilla deseadas. Si la categoría seleccionada no es <code class="filename">Clase</code> ni <code class="filename">Prueba</code>, solo dispondrá de la opción de escoger la licencia, cualquier opción personalizada indicada por la plantilla y la ubicación de los archivos de salida. Como ocurre con las clases y con las pruebas, al terminar el asistente se generarán los archivos y se abrirán en el editor. </p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="creating-a-new-unit-test.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="managing-templates.html">Siguiente</a></td></tr><tr><td class="prevCell">Creación de una nueva prueba unitaria </td><td class="upCell">Generación de código con plantillas</td><td class="nextCell"> Gestión de plantillas</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="managing-templates.html"><html><head><title>Gestión de plantillas</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="code-generation-with-templates.html" title="Capítulo 4. Generación de código con plantillas"><link rel="prev" href="other-files.html" title="Otros archivos"><link rel="next" href="building-compiling-projects-with-custom-makefiles.html" title="Capítulo 5. Construir (compilar) proyectos con Makefiles personalizados"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Gestión de plantillas</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="other-files.html">Anterior</a></td><td class="upCell">Generación de código con plantillas</td><td class="nextCell"><a accesskey="n" href="building-compiling-projects-with-custom-makefiles.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="managing-templates"></a>Gestión de plantillas</h2></div></div></div><p>Desde el asistente que se ejecuta al seleccionar <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Archivo</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Nuevo desde plantilla...</span></span> también puede descargar plantillas de archivo adicionales pulsando el botón <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Obtener nuevas plantillas...</span></span>. Esto abre el diálogo «Obtener novedades», desde donde podrá instalar plantillas adicionales, así como actualizar o eliminar las existentes. También dispone de un módulo de configuración para las plantillas, al que puede llegar seleccionando <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Preferencias</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Configurar <span class="application">KDevelop</span></span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Plantillas</span></span>. Desde aquí puede gestionar tanto las plantillas de archivo (anteriormente explicadas), como las plantillas de proyecto (usadas para crear nuevos proyectos). </p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-template-manager.png"></div></div><p>
</p><p>Por supuesto, si ninguna de las plantillas disponibles se ajusta a su proyecto, siempre puede crear otras nuevas. El modo más sencillo de hacerlo consiste, probablemente, en copiar y modificar una plantilla existente, aunque también dispone de un breve <a class="ulink" href="https://techbase.kde.org/Development/Tutorials/KDevelop/Creating_a_class_template" target="_top">tutorial</a> y de un <a class="ulink" href="https://techbase.kde.org/Projects/KDevelop4/File_template_specification" target="_top">documento con la especificación</a> más extenso a modo de ayuda. Para copiar una plantilla instalada, abra el gestor de plantillas usando <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Preferencias</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Configurar KDevelop;...</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Plantillas</span></span>, seleccione la plantilla que desea copiar y pulse luego el botón <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Extraer plantilla</span></span>. Seleccione una carpeta de destino y pulse <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Aceptar</span></span> para extraer el contenido de la plantilla en la carpeta indicada. Ahora podrá editar la plantilla abriendo los archivos extraídos y modificándolos. Cuando haya terminado, puede importar la nueva plantilla en <span class="application">KDevelop</span> abriendo el gestor de plantillas, yendo a la pestaña apropiada (que puede ser <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Plantillas de proyecto</span></span> o <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Plantillas de archivos</span></span>) y pulsando <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Cargar plantilla</span></span>. Abra el archivo de descripción de la plantilla, que es el que tiene una de las extensiones <code class="varname">.kdevtemplate</code> o <code class="varname">.desktop</code>. <span class="application">KDevelop</span> comprimirá estos archivos en un archivo comprimido de plantilla y luego importará la plantilla. </p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Cuando copie una plantilla existente, asegúrese de que cambia su nombre antes de importarla de nuevo. En caso contrario sobrescribirá la plantilla existente o acabará con dos plantillas con el mismo nombre. Para cambiar el nombre de una plantilla, cambie el nombre del archivo de descripción para que sea único (pero conserve el sufijo) y modifique la entrada <code class="filename">Name</code> del archivo de descripción. </p></div><p>
</p><p>Si desea crear una plantilla desde cero, puede comenzar con una plantilla de clase de C++ de ejemplo mediante la <a class="link" href="creating-projects-from-scratch.html" title="Creación de proyectos desde cero">creación de un nuevo proyecto</a>, seleccionando el proyecto <code class="filename">Plantilla de clase de C++</code> en la categoría <code class="filename">KDevelop</code>. </p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="other-files.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="building-compiling-projects-with-custom-makefiles.html">Siguiente</a></td></tr><tr><td class="prevCell">Otros archivos </td><td class="upCell">Generación de código con plantillas</td><td class="nextCell"> Construir (compilar) proyectos con Makefiles personalizados</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="some-useful-keyboard-shortcuts.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="creating-a-new-unit-test.html">Siguiente</a></td></tr><tr><td class="prevCell">Algunos accesos rápidos de teclado útiles </td><td class="upCell"> </td><td class="nextCell"> Creación de una nueva prueba unitaria</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="building-compiling-projects-with-custom-makefiles.html"><html><head><title>Capítulo 5. Construir (compilar) proyectos con Makefiles personalizados</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="index.html" title="Manual de KDevelop"><link rel="prev" href="managing-templates.html" title="Gestión de plantillas"><link rel="next" href="selecting-a-collection-of-makefile-targets-for-repeated-building.html" title="Selección de una colección de Makefiles de destino para compilación repetitiva"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Construir (compilar) proyectos con Makefiles personalizados</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="managing-templates.html">Anterior</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="selecting-a-collection-of-makefile-targets-for-repeated-building.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="building-compiling-projects-with-custom-makefiles"></a>Capítulo 5. Construir (compilar) proyectos con Makefiles personalizados</h1></div></div></div><p>Muchos proyectos describen cómo se deben compilar los archivos de código fuente (y qué archivos se deben recompilar tras realizar cambios en un archivo de código fuente o de cabecera) usando Makefiles que son interpretados por el programa <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">make</span></span> (vea, por ejemplo, <a class="ulink" href="https://www.gnu.org/software/make/" target="_top">GNU make</a>). Para proyectos sencillos, a menudo resulta más fácil configurar dicho archivo a mano. Los proyectos más grandes suelen integrar sus Makefiles con las <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">herramientas automáticas de GNU</span></span> (autoconf, autoheader y automake). En esta sección, supondremos que dispone de un archivo Makefile para su proyecto y que desea indicarle a <span class="application">KDevelop</span> cómo debe proceder con él.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p><span class="application">KDevelop</span> 4.x no sabe nada sobre las <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">herramientas automáticas de GNU</span></span> en el momento en que se ha escrito esta sección. Si su proyecto las utiliza, tendrá que ejecutar <code class="varname">./configure</code> u otra orden relacionada de forma manual en la consola. Si prefiere hacer esto desde <span class="application">KDevelop</span>, abra la herramienta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Konsole</span></span> (si es necesario, añádala al borde de la ventana principal usando el menú <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Ventanas</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Añadir vista de herramienta</span></span>), que le proporciona acceso a una vista de la ventana de la consola, y ejecute <code class="varname">./configure</code> desde la línea de órdenes de dicha vista.</p></div><p>El primer paso consiste en indicarle a <span class="application">KDevelop</span> cuáles son los objetivos de sus Makefiles. Existen dos modos de hacer esto: seleccionar objetivos de Makefiles individuales, o escoger un conjunto de objetivos que desee construir con frecuencia. Para ambas aproximaciones, abra la herramienta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Proyectos</span></span> pulsando en el botón <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Proyectos</span></span> que hay en el borde de la ventana principal (si no tiene este botón, añádalo como se indicó con anterioridad). La ventana de la herramienta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Proyectos</span></span> consta de dos partes: la mitad superior, (con el título <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Proyectos</span></span>) donde se listan todos los proyectos y se le permite desplegar los árboles de directorios que contiene; y la mitad inferior (con el título <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Selección de proyecto</span></span>) que lista un subconjunto de los proyectos que se construirán cuando use el elemento del menú <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Proyecto</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Construir selección</span></span> o pulse <span class="keycap"><strong>F8</strong></span>. Más adelante volveremos a esta cuestión.</p><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="building-individual-makefile-targets"></a>Construcción de objetivos Makefile individuales</h2></div></div></div><p>En la parte superior del visor del proyecto, despliegue el árbol de un proyecto (por ejemplo, del que desea ejecutar un objetivo Makefile particular). Se mostrarán iconos para: (i) los directorios que hay bajo el proyecto, (ii) los archivos que hay en el directorio superior de dicho proyecto, y (iii) los objetivos Makefile que <span class="application">KDevelop</span> puede identificar. Estas categorías se muestran en la imagen de la derecha. Tenga presente que <span class="application">KDevelop</span> <span class="emphasis"><em>entiende</em></span> la sintaxis de Makefile hasta cierto punto, por lo que puede identificar objetivos definidos en dicho Makefile (aunque este conocimiento tiene sus límites si los objetivos están compuestos o si son implícitos).</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-1a.png"><div class="caption"><p></p></div></div></div><p>Para construir cualquiera de los objetivos que se listan ahí, pulse sobre él con el botón derecho del ratón y seleccione <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Construir</span></span>. Por ejemplo, si hace esto con el objetivo <span class="quote">“<span class="quote">clean</span>”</span> se ejecutará <span class="quote">“<span class="quote">make clean</span>”</span>. Puede ver el desarrollo de la ejecución en la ventana que se abre con el título <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Construir</span></span>, que muestra la orden y su salida. (Esta ventana corresponde a la herramienta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Construir</span></span>, y puede cerrarla y abrirla posteriormente usando el botón de la herramienta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Construir</span></span> que hay en el borde de la ventana principal. Esto se muestra en la parte inferior derecha de la imagen).</p></div><FILENAME filename="selecting-a-collection-of-makefile-targets-for-repeated-building.html"><html><head><title>Selección de una colección de Makefiles de destino para compilación repetitiva</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="building-compiling-projects-with-custom-makefiles.html" title="Capítulo 5. Construir (compilar) proyectos con Makefiles personalizados"><link rel="prev" href="building-compiling-projects-with-custom-makefiles.html" title="Capítulo 5. Construir (compilar) proyectos con Makefiles personalizados"><link rel="next" href="what-to-do-with-error-messages.html" title="Qué hacer con los mensajes de error"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Selección de una colección de Makefiles de destino para compilación repetitiva</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="building-compiling-projects-with-custom-makefiles.html">Anterior</a></td><td class="upCell">Construir (compilar) proyectos con Makefiles personalizados</td><td class="nextCell"><a accesskey="n" href="what-to-do-with-error-messages.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="selecting-a-collection-of-makefile-targets-for-repeated-building"></a>Selección de una colección de Makefiles de destino para compilación repetitiva</h2></div></div></div><p>Si pulsa con el botón derecho del ratón sobre objetivos Makefile individuales cada vez que quiera construir algo quedará obsoleto con rapidez. Más bien, sería deseable tener objetivos individuales para uno o más de los proyectos de la sesión que necesitamos compilar de forma repetitiva sin demasiado uso del ratón. Aquí es donde interviene el concepto de <span class="quote">“<span class="quote">Construir selecciones de objetivos</span>”</span>: consiste en una colección de objetivos Makefile que se construyen uno tras otro cada vez que pulse el botón <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Construir selección</span></span> que hay en la lista de botones superiores, o cuando use la opción del menú <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Proyecto</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Construir selección</span></span> o pulse la tecla de función <span class="keycap"><strong>F8</strong></span>.</p><p>La lista de los Makefiles de destino seleccionada se muestra en la mitad inferior del visor de la herramienta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Proyectos</span></span>.</p><p>Por omisión, la selección contiene todos los proyectos, aunque puede cambiarla. Por ejemplo, si la lista de proyectos contiene tres proyectos (una biblioteca base, L, y dos aplicaciones, A y B), pero solo en la actualidad solamente trabaja en el proyecto A, tal vez desee eliminar el proyecto B de la selección resaltándolo y pulsando el botón <span class="inlinemediaobject"><img src="Icon-list-remove.png"></span>. Además, también es probable que quiera asegurarse de que la biblioteca L se construye antes que el proyecto A subiendo o bajando las entradas de la selección con los botones que hay a la derecha de la lista. También puede obtener un objetivo Makefile particular en la lista de selección haciendo clic sobre él con el botón derecho del ratón y seleccionando la opción <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Añadir al conjunto de construcción</span></span>, o bien resaltándolo y pulsando el botón <span class="inlinemediaobject"><img src="Icon-list-add.png"></span> que hay justo encima de la lista de objetivos seleccionados.</p><p><span class="application">KDevelop</span> le permite configurar lo que se va a hacer cada vez que construya la selección. Para este fin, use la opción del menú <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Proyecto</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Abrir configuración</span></span>. Ahí podrá, por ejemplo, seleccionar el número de trabajos simultáneos que debe ejecutar <span class="quote">“<span class="quote">make</span>”</span> (si su equipo dispone, por ejemplo, de 8 núcleos de procesador, una buena elección sería introducir 8 en este campo). En este diálogo, el <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Objetivo make por omisión</span></span> es un objetivo Makefile que se usa para <span class="emphasis"><em>todos</em></span> los objetivos de la selección.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="building-compiling-projects-with-custom-makefiles.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="what-to-do-with-error-messages.html">Siguiente</a></td></tr><tr><td class="prevCell">Construir (compilar) proyectos con Makefiles personalizados </td><td class="upCell">Construir (compilar) proyectos con Makefiles personalizados</td><td class="nextCell"> Qué hacer con los mensajes de error</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="what-to-do-with-error-messages.html"><html><head><title>Qué hacer con los mensajes de error</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="building-compiling-projects-with-custom-makefiles.html" title="Capítulo 5. Construir (compilar) proyectos con Makefiles personalizados"><link rel="prev" href="selecting-a-collection-of-makefile-targets-for-repeated-building.html" title="Selección de una colección de Makefiles de destino para compilación repetitiva"><link rel="next" href="running-programs-in-kdevelop.html" title="Capítulo 6. Ejecutar programas en KDevelop"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Qué hacer con los mensajes de error</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="selecting-a-collection-of-makefile-targets-for-repeated-building.html">Anterior</a></td><td class="upCell">Construir (compilar) proyectos con Makefiles personalizados</td><td class="nextCell"><a accesskey="n" href="running-programs-in-kdevelop.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="what-to-do-with-error-messages"></a>Qué hacer con los mensajes de error</h2></div></div></div><p>Si el compilador encuentra un mensaje de error, haga clic en la línea del mensaje de error para que el editor salte a la línea (y columna, si está disponible) donde se ha generado el error. Dependiendo del mensaje de error, <span class="application">KDevelop</span> también le ofrecerá diversas acciones posibles para solucionarlo (por ejemplo, declarar una variable previamente no declarada si se encuentra un símbolo desconocido).</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="selecting-a-collection-of-makefile-targets-for-repeated-building.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="running-programs-in-kdevelop.html">Siguiente</a></td></tr><tr><td class="prevCell">Selección de una colección de Makefiles de destino para compilación repetitiva </td><td class="upCell">Construir (compilar) proyectos con Makefiles personalizados</td><td class="nextCell"> Ejecutar programas en <span class="application">KDevelop</span></td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="managing-templates.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="selecting-a-collection-of-makefile-targets-for-repeated-building.html">Siguiente</a></td></tr><tr><td class="prevCell">Gestión de plantillas </td><td class="upCell"> </td><td class="nextCell"> Selección de una colección de Makefiles de destino para compilación repetitiva</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="running-programs-in-kdevelop.html"><html><head><title>Capítulo 6. Ejecutar programas en KDevelop</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="index.html" title="Manual de KDevelop"><link rel="prev" href="what-to-do-with-error-messages.html" title="Qué hacer con los mensajes de error"><link rel="next" href="some-useful-keyboard-shortcuts0.html" title="Algunos accesos rápidos de teclado útiles"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Ejecutar programas en <span class="application">KDevelop</span></div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="what-to-do-with-error-messages.html">Anterior</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="some-useful-keyboard-shortcuts0.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="running-programs-in-kdevelop"></a>Capítulo 6. Ejecutar programas en <span class="application">KDevelop</span></h1></div></div></div><p>Tras construir un programa, es posible que desee ejecutarlo. Para ello, necesitará configurar <span class="emphasis"><em>lanzadores</em></span> para sus proyectos. Un <span class="emphasis"><em>lanzador</em></span> consiste en el nombre de un ejecutable, un conjunto de parámetros de la línea de órdenes y un entorno de ejecución (como <span class="quote">“<span class="quote">ejecutar este programa en la consola</span>”</span> o <span class="quote">“<span class="quote">ejecutar este programa en el depurador</span>”</span>).</p><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="setting-up-launches-in-kdevelop"></a>Configuración de lanzadores en <span class="application">KDevelop</span></h2></div></div></div><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-2.png"><div class="caption"><p></p></div></div></div><p>Para configurarlos, vaya a la opción del menú <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Ejecutar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Configurar lanzadores</span></span>, seleccione el proyecto para el que quiera añadir un lanzador y haga clic en el botón <span class="inlinemediaobject"><img src="Icon-list-add.png"></span>. Introduzca a continuación el nombre del ejecutable y la ruta donde desee ejecutar el programa. Si la ejecución del programa depende de que se primero se construyan el ejecutable y otras bibliotecas, es probable que quiera añadirlos a la lista que hay en la parte inferior: seleccione <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Construir</span></span> en el menú desplegable, luego pulse el símbolo <span class="inlinemediaobject"><img src="Icon-folder.png"></span> que hay a la derecha del campo de texto y seleccione los objetivos que desee construir. En el ejemplo anterior, hemos seleccionado el objetivo <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">todo</span></span> del proyecto <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="replaceable"><em class="replaceable"><code>1.deal.II</code></em></span> y <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="replaceable"><em class="replaceable"><code>step-32</code></em></span> del proyecto <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="replaceable"><em class="replaceable"><code>1.setp-32</code></em></span> para asegurar que tanto la biblioteca base como el programa de la aplicación se han compilado y que están actualizados antes de ejecutar el programa. Cuando esté aquí, es posible que también quiera configurar un lanzador para depuración pulsando sobre el símbolo <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Depurar</span></span> y añadiendo el nombre del programa de depuración; si es el depurador por omisión del sistema (<abbr class="abbrev">por ejemplo</abbr>, <span class="application">gdb</span> en <span class="trademark">Linux</span>®), no necesita realizar este paso.</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-3.png"><div class="caption"><p></p></div></div></div><p>Ahora puede probar a ejecutar el programa: seleccione <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Ejecutar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Ejecutar lanzador</span></span> en el menú de la ventana principal de <span class="application">KDevelop</span> (o pulse <span class="keycap"><strong>Mayúsculas</strong></span>+<span class="keycap"><strong>F9</strong></span>) para que el programa se ejecute en una ventana independiente de <span class="application">KDevelop</span>. La imagen superior muestra el resultado: la nueva ventana de la herramienta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Ejecutar</span></span> en la parte inferior muestra la salida del programa que se está ejecutando (en este caso, <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="replaceable"><em class="replaceable"><code>step-32</code></em></span>).</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>Si ha configurado diversos lanzadores, puede elegir cuál de ellos se debe ejecutar cuando pulse <span class="keycap"><strong>Mayúsculas</strong></span>+<span class="keycap"><strong>F9</strong></span> yendo a <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Ejecutar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Configuración del lanzador actual</span></span>.  No obstante, existe una forma no obvia de editar el nombre de una configuración: en el diálogo que se muestra cuando selecciona <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Ejecutar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Configuración del lanzador actual</span></span>, haga doble clic sobre el nombre de la configuración en la vista de árbol que hay a la izquierda, lo que le permitirá cambiar el nombre de la configuración.</p></div></div><FILENAME filename="some-useful-keyboard-shortcuts0.html"><html><head><title>Algunos accesos rápidos de teclado útiles</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="running-programs-in-kdevelop.html" title="Capítulo 6. Ejecutar programas en KDevelop"><link rel="prev" href="running-programs-in-kdevelop.html" title="Capítulo 6. Ejecutar programas en KDevelop"><link rel="next" href="debugging-programs-in-kdevelop.html" title="Capítulo 7. Depuración de programas en KDevelop"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Algunos accesos rápidos de teclado útiles</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="running-programs-in-kdevelop.html">Anterior</a></td><td class="upCell">Ejecutar programas en <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="debugging-programs-in-kdevelop.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="some-useful-keyboard-shortcuts0"></a>Algunos accesos rápidos de teclado útiles</h2></div></div></div><p>
</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1"><col class="c2"></colgroup><thead><tr><th colspan="2">Ejecución de un programa</th></tr></thead><tbody><tr><td><span class="keycap"><strong>F8</strong></span></td><td>Construir (llamar a make)</td></tr><tr><td><span class="keycap"><strong>Mayúsculas</strong></span>+<span class="keycap"><strong>F9</strong></span></td><td>Ejecutar</td></tr><tr><td><span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>F9</strong></span></td><td>Ejecutar el programa en el depurador; es posible que desee fijar puntos de interrupción con anterioridad, por ejemplo, pulsando con el botón derecho del ratón sobre una determinada línea en el código fuente</td></tr></tbody></table></div><p>
</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="running-programs-in-kdevelop.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="debugging-programs-in-kdevelop.html">Siguiente</a></td></tr><tr><td class="prevCell">Ejecutar programas en <span class="application">KDevelop</span> </td><td class="upCell">Ejecutar programas en <span class="application">KDevelop</span></td><td class="nextCell"> Depuración de programas en <span class="application">KDevelop</span></td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="what-to-do-with-error-messages.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="some-useful-keyboard-shortcuts0.html">Siguiente</a></td></tr><tr><td class="prevCell">Qué hacer con los mensajes de error </td><td class="upCell"> </td><td class="nextCell"> Algunos accesos rápidos de teclado útiles</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="debugging-programs-in-kdevelop.html"><html><head><title>Capítulo 7. Depuración de programas en KDevelop</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="index.html" title="Manual de KDevelop"><link rel="prev" href="some-useful-keyboard-shortcuts0.html" title="Algunos accesos rápidos de teclado útiles"><link rel="next" href="attaching-the-debugger-to-a-running-process.html" title="Adjuntar el depurador a un proceso en ejecución"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Depuración de programas en <span class="application">KDevelop</span></div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="some-useful-keyboard-shortcuts0.html">Anterior</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="attaching-the-debugger-to-a-running-process.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="debugging-programs-in-kdevelop"></a>Capítulo 7. Depuración de programas en <span class="application">KDevelop</span></h1></div></div></div><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="running-a-program-in-the-debugger"></a>Ejecutar un programa en el depurador</h2></div></div></div><p>Tras configurar un lanzador (consulte <a class="link" href="running-programs-in-kdevelop.html" title="Capítulo 6. Ejecutar programas en KDevelop">Ejecución de programas</a>), también podrá ejecutarlo en un depurador: seleccione la opción del menú <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Ejecutar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Lanzador de depuración</span></span> o pulse <span class="keycap"><strong>Alt</strong></span>+<span class="keycap"><strong>F9</strong></span>. Si está familiarizado con <span class="application">gdb</span>, el resultado es el mismo que se obtiene al iniciar <span class="application">gdb</span> con el nombre del ejecutable indicado en la configuración del lanzador y usando luego <code class="varname">Ejecutar</code>. Esto significa que si el programa llama en algún momento a <code class="varname">abort()</code> (<abbr class="abbrev">por ejemplo</abbr>, cuando se genera una aserción no contemplada) o si se produce un error de segmentación, se detendrá el depurador. Por otra parte, si el programa se ejecuta hasta el final (de forma correcta o incorrecta), el depurador no se detendrá por sí mismo antes de que el programa haya finalizado. En este último caso, antes de ejecutar el lanzador de depuración, querrá fijar un punto de interrupción en todas las líneas del código fuente donde desee que se detenga el depurador. Puede hacer esto moviendo el cursor a cada una de dichas líneas y seleccionando la opción del menú <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Ejecutar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Conmutar punto de interrupción</span></span>, o haciendo clic con el botón derecho del ratón en una línea y seleccionando <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Conmutar punto de interrupción</span></span> en el menú de contexto.</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-4.png"><div class="caption"><p></p></div></div></div><p>La ejecución de un programa en el depurador hará que <span class="application">KDevelop</span> entre en un modo diferente: sustituirá todos los botones de <span class="quote">“<span class="quote">Herramientas</span>”</span> del borde de la ventana principal por otros más adecuados para la depuración que para la edición. Puede ver en qué modo se encuentra observando la parte superior derecha de la ventana, donde existen pestañas denominadas <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Revisar</span></span>, <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Depurar</span></span> y <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Código</span></span>. Si pulsa sobre ellas podrá cambiar entre los tres modos. Cada modo tiene su propio juego de vistas de herramientas, que puede configurar del mismo modo que hicimos con las herramientas de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Código</span></span> en la sección <a class="link" href="working-with-source-code.html#tools-and-views" title="Herramientas y vistas">Herramientas y vistas</a>.</p><p>Una vez que el depurador se detiene (en un punto de interrupción o donde se haya llamado a <code class="varname">abort()</code>), puede inspeccionar diversa información sobre el programa. Por ejemplo, en la imagen superior, hemos seleccionado la herramienta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Pila de ejecución</span></span> en la parte inferior (aproximadamente, como las órdenes <span class="quote">“<span class="quote">backtrace</span>”</span> e <span class="quote">“<span class="quote">info threads</span>”</span> de <span class="application">gdb</span>), que muestra en la parte de la izquierda los distintos hilos que se están ejecutando en el programa (aquí hay un total de 8) y, en la parte de la derecha, cómo ha llegado la ejecución hasta el punto de interrupción actual (en este caso: <code class="varname">main()</code> ha llamado a <code class="varname">run()</code>; la lista sería más larga si no s hubiéramos detenido en una función llamada por <code class="varname">run()</code>). En la parte de la izquierda podemos inspeccionar las variables locales, incluido el objeto actual (el objeto  al que apunta la variable <code class="varname">this</code>).</p><p>Una vez aquí, disponemos de diversas posibilidades: puede ejecutar la línea actual (<span class="keycap"><strong>F10</strong></span>, como la orden <span class="quote">“<span class="quote">next</span>”</span> de <span class="application">gdb</span>), avanzar dentro de funciones (<span class="keycap"><strong>F11</strong></span>, como la orden <span class="quote">“<span class="quote">step</span>”</span> de <span class="application">gdb</span>) o ejecutar hasta el final de la función (<span class="keycap"><strong>F12</strong></span>, como la orden <span class="quote">“<span class="quote">finish</span>”</span> de <span class="application">gdb</span>). En cada paso, <span class="application">KDevelop</span> actualiza las variables mostradas en la parte de la izquierda con sus valores actuales. También puede situar el ratón sobre cualquier símbolo del código fuente (<abbr class="abbrev">por ejemplo</abbr>, una variable) para que <span class="application">KDevelop</span> muestre su valor actual y le ofrezca la posibilidad de detener la ejecución del programa la próxima vez que se modifique el valor de dicho símbolo. Si sabe manejar <span class="application">gdb</span>, también puede pulsar el botón de la herramienta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">GDB</span></span> que hay en la parte inferior para disponer de la posibilidad de introducir órdenes de <span class="application">gdb</span>, como, por ejemplo, para cambiar el valor de una variable (para la que no exista otro modo de hacerlo).</p></div><FILENAME filename="attaching-the-debugger-to-a-running-process.html"><html><head><title>Adjuntar el depurador a un proceso en ejecución</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="debugging-programs-in-kdevelop.html" title="Capítulo 7. Depuración de programas en KDevelop"><link rel="prev" href="debugging-programs-in-kdevelop.html" title="Capítulo 7. Depuración de programas en KDevelop"><link rel="next" href="some-useful-keyboard-shortcuts1.html" title="Algunos accesos rápidos de teclado útiles"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Adjuntar el depurador a un proceso en ejecución</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="debugging-programs-in-kdevelop.html">Anterior</a></td><td class="upCell">Depuración de programas en <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="some-useful-keyboard-shortcuts1.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="attaching-the-debugger-to-a-running-process"></a>Adjuntar el depurador a un proceso en ejecución</h2></div></div></div><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-9.png"><div class="caption"><p></p></div></div></div><p>A veces, deseamos depurar un programa que ya está en ejecución. Un escenario para ello consiste en la depuración de programas en paralelo usando <a class="ulink" href="https://computing.llnl.gov/tutorials/mpi/" target="_top">MPI</a>, o para depurar un proceso en segundo plano de larga ejecución. Para ello, vaya a la entrada del menú <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Ejecutar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Adjuntar a proceso</span></span>, que abrirá una nueva ventana como la anterior. Entonces querrá seleccionar el programa que coincida con el proyecto actualmente abierto en <span class="application">KDevelop</span> (en nuestro caso sería el programa step-32).</p><p>Esta lista de programas puede resultar confusa debido a que suele ser larga, como en el caso que se muestra aquí. Puede hacer que las cosas sean más simples usando la lista desplegable que hay en la parte superior derecha de la ventana. El valor por omisión es <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Procesos del usuario</span></span>, <abbr class="abbrev">es decir</abbr>, todos los programas que ejecutan cualquiera de los usuarios que tienen iniciada sesión en esta máquina (si se trata de su equipo de escritorio o de su portátil, es probable que usted sea el único usuario, además del usuario «root» y de otras cuentas usadas por algunos servicios). No obstante, la lista no incluye los procesos ejecutados por el usuario «root». Puede limitar la lista seleccionando <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Procesos propios</span></span>, o bien eliminando todos los programas ejecutados por otros usuarios. E, incluso mejor, seleccionando <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Solo programas</span></span>, que eliminará gran cantidad de procesos que se ejecutan bajo su nombre de usuario pero con los que raramente interactuará (como el gestor de ventanas), tareas en segundo plano y similares, que no serán candidatos para depurar.</p><p>Una vez haya seleccionado un proceso, adjuntar a él le llevará al modo de depuración de <span class="application">KDevelop</span>, abrirá todas las vistas de herramientas típicas de depuración y detendrá el programa en la posición en la que lo adjuntó a él. En ese caso tal vez quiera fijar puntos de interrupción, puntos de vista o lo que necesite y continuar la ejecución de programa yendo a la opción del menú <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Ejecutar</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Continue</span></span>.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="debugging-programs-in-kdevelop.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="some-useful-keyboard-shortcuts1.html">Siguiente</a></td></tr><tr><td class="prevCell">Depuración de programas en <span class="application">KDevelop</span> </td><td class="upCell">Depuración de programas en <span class="application">KDevelop</span></td><td class="nextCell"> Algunos accesos rápidos de teclado útiles</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="some-useful-keyboard-shortcuts1.html"><html><head><title>Algunos accesos rápidos de teclado útiles</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="debugging-programs-in-kdevelop.html" title="Capítulo 7. Depuración de programas en KDevelop"><link rel="prev" href="attaching-the-debugger-to-a-running-process.html" title="Adjuntar el depurador a un proceso en ejecución"><link rel="next" href="working-with-version-control-systems.html" title="Capítulo 8. Trabajar con sistemas de control de versiones"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Algunos accesos rápidos de teclado útiles</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="attaching-the-debugger-to-a-running-process.html">Anterior</a></td><td class="upCell">Depuración de programas en <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="working-with-version-control-systems.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="some-useful-keyboard-shortcuts1"></a>Algunos accesos rápidos de teclado útiles</h2></div></div></div><p>
</p><div class="informaltable"><table class="informaltable" border="1"><colgroup><col class="c1"><col class="c2"></colgroup><thead><tr><th colspan="2">Depuración</th></tr></thead><tbody><tr><td><span class="keycap"><strong>F10</strong></span></td><td>Avanzar sobre (<span class="quote">“<span class="quote">siguiente</span>”</span> de gdb)</td></tr><tr><td><span class="keycap"><strong>F11</strong></span></td><td>Avanzar dentro (<span class="quote">“<span class="quote">paso</span>”</span> de gdb)</td></tr><tr><td><span class="keycap"><strong>F12</strong></span></td><td>Avanzar fuera (<span class="quote">“<span class="quote">finalizar</span>”</span> de gdb)</td></tr></tbody></table></div><p>
</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="attaching-the-debugger-to-a-running-process.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="working-with-version-control-systems.html">Siguiente</a></td></tr><tr><td class="prevCell">Adjuntar el depurador a un proceso en ejecución </td><td class="upCell">Depuración de programas en <span class="application">KDevelop</span></td><td class="nextCell"> Trabajar con sistemas de control de versiones</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="some-useful-keyboard-shortcuts0.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="attaching-the-debugger-to-a-running-process.html">Siguiente</a></td></tr><tr><td class="prevCell">Algunos accesos rápidos de teclado útiles </td><td class="upCell"> </td><td class="nextCell"> Adjuntar el depurador a un proceso en ejecución</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="working-with-version-control-systems.html"><html><head><title>Capítulo 8. Trabajar con sistemas de control de versiones</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="index.html" title="Manual de KDevelop"><link rel="prev" href="some-useful-keyboard-shortcuts1.html" title="Algunos accesos rápidos de teclado útiles"><link rel="next" href="customizing-kdevelop.html" title="Capítulo 9. Personalización de KDevelop"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Trabajar con sistemas de control de versiones</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="some-useful-keyboard-shortcuts1.html">Anterior</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="customizing-kdevelop.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="working-with-version-control-systems"></a>Capítulo 8. Trabajar con sistemas de control de versiones</h1></div></div></div><p>Si está trabajando con proyectos grandes, es posible que el código fuente esté gestionado por un sistema de control de versiones, como <a class="ulink" href="https://subversion.apache.org/" target="_top">subversion</a> o <a class="ulink" href="https://git-scm.com/" target="_top">git</a>. La siguiente descripción se ha escrito teniendo en cuenta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">subversion</span></span>, pero será igualmente válida si utiliza <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">git</span></span> o cualquier otro sistema de control de versiones implementado.</p><p>Para empezar, si el directorio en el que se encuentra situado el proyecto está bajo control de versiones, <span class="application">KDevelop</span> se dará cuenta automáticamente. En otras palabras: no es necesario que le indique a <span class="application">KDevelop</span> que descargue una copia por sí mismo cuando configure el proyecto; basta con hacer que <span class="application">KDevelop</span> apunte a un directorio en el que haya descargado previamente una copia del repositorio. Si tiene un directorio bajo control de versiones de la forma indicada, abra la vista de la herramienta <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Proyectos</span></span>. En ese momento podrá hacer varias cosas:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Si el directorio está desactualizado, puede actualizarlo a partir del repositorio: pulse en el nombre del proyecto con el botón derecho del ratón, vaya al menú <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Subversion</span></span> y seleccione <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Actualizar</span></span>. Esto hará que todos los archivos que pertenezcan al proyecto se actualicen con respecto al repositorio. </p></li><li class="listitem"><p>Si desea restringir esta acción a subdirectorios o archivos individuales, expanda la vista de árbol de este proyecto hasta el nivel necesario y haga clic con el botón derecho del ratón en el nombre de un subdirectorio o de un archivo y haga luego lo mismo que antes. </p></li></ul></div><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-8.png"><div class="caption"><p></p></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>Si ha editado uno o más archivos, expanda la vista del proyecto hasta el directorio en el que están ubicados dichos archivos y pulse con el botón derecho del ratón sobre el directorio en cuestión. Esto le proporcionará un menú <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Subversion</span></span> que le ofrece distintas opciones. Elija <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Comparar con la base</span></span> para ver las diferencias entre la versión que haya editado y la versión del repositorio que hubiera descargado previamente para actualizar su copia local (la revisión «base»). La vista resultante le mostrará las diferencias existentes en todos los archivos del mencionado directorio. </p></li><li class="listitem"><p>Si solamente ha editado un archivo, también puede obtener el menú <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Subversion</span></span> para dicho archivo pulsando con el botón derecho del ratón sobre su nombre en la vista del proyecto. Todavía más sencillo, pulse con el botón derecho del ratón sobre la vista del <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Editor</span></span> en la que esté abierto el mencionado archivo para obtener la misma opción de menú. </p></li><li class="listitem"><p>Si quiere revisar uno o más archivos modificados, pulse con el botón derecho del ratón sobre un archivo individual, sobre un directorio o sobre un proyecto completo y seleccione <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Subversion</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Enviar</span></span>. Esto le llevará al modo de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Revisión</span></span>, el tercer modo además de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Código</span></span> y <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Depuración</span></span>, como puede ver en la esquina superior derecha de la ventana principal de <span class="application">KDevelop</span>. La imagen de la derecha se lo muestra. En el modo de <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Revisión</span></span>, la parte superior le muestra las diferencias para todo el subdirectorio o proyecto y cada archivo individual con las modificaciones que contiene resaltadas (vea las distintas pestañas de esta parte de la ventana). Por omisión, todos los archivos modificados pertenecen al conjunto de cambios que está a punto de enviar, aunque puede quitar algunos de ellos de la selección si considera que sus modificaciones no están relacionadas con lo que desea enviar. Por ejemplo, como se muestra a la derecha, hemos desmarcado <code class="varname">step-32.cc</code> y <code class="varname">step-32.prm</code> porque los cambios que contienen estos archivos no tienen nada que ver con el resto de modificaciones de este proyecto y no queremos enviarlos al repositorio todavía (porque vamos a hacerlo más adelante en otro envío). Tras revisar los cambios, puede crear un mensaje descriptivo del envío en el cuadro de texto y pulsar el botón <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Enviar</span></span> que hay a la derecha para entregar los cambios. </p></li><li class="listitem"><p>Cuando está visualizando las diferencias, puede entregar un único archivo pulsando con el botón derecho del ratón en la ventana del editor para obtener la opción del menú <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Subversion</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Enviar</span></span>. </p></li></ul></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="some-useful-keyboard-shortcuts1.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="customizing-kdevelop.html">Siguiente</a></td></tr><tr><td class="prevCell">Algunos accesos rápidos de teclado útiles </td><td class="upCell"> </td><td class="nextCell"> Personalización de <span class="application">KDevelop</span></td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="customizing-kdevelop.html"><html><head><title>Capítulo 9. Personalización de KDevelop</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="index.html" title="Manual de KDevelop"><link rel="prev" href="working-with-version-control-systems.html" title="Capítulo 8. Trabajar con sistemas de control de versiones"><link rel="next" href="customizing-code-indentation.html" title="Personalización de la sangría del código"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Personalización de <span class="application">KDevelop</span></div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="working-with-version-control-systems.html">Anterior</a></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="customizing-code-indentation.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="customizing-kdevelop"></a>Capítulo 9. Personalización de <span class="application">KDevelop</span></h1></div></div></div><p>Existen ocasiones en las que deseará cambiar el aspecto o el comportamiento por omisión de <span class="application">KDevelop</span> como, por ejemplo, cuando está acostumbrado a distintos accesos rápidos de teclado o cuando su proyecto necesita un estilo de sangrado distinto para el código fuente. En las siguientes secciones hablaremos brevemente sobre los diferentes modos de personalizar <span class="application">KDevelop</span> para estos propósitos.</p><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="customizing-the-editor"></a>Personalización del editor</h2></div></div></div><p>Existen varias cosas útiles que se pueden configurar relacionadas con el editor integrado de <span class="application">KDevelop</span>. Una de las más usuales consiste en mostrar la numeración de las líneas usando la opción del menú <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Editor</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Ver</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Mostrar números de líneas</span></span>, lo que facilita la identificación de las líneas de código que se muestran en los mensajes de error o de depuración. En el mismo submenú también puede activar el <span class="emphasis"><em>borde de iconos</em></span> (una columna a la izquierda del código en la que <span class="application">KDevelop</span> mostrará distintos iconos, como cuando fija un punto de interrupción en la línea actual).</p></div><FILENAME filename="customizing-code-indentation.html"><html><head><title>Personalización de la sangría del código</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="customizing-kdevelop.html" title="Capítulo 9. Personalización de KDevelop"><link rel="prev" href="customizing-kdevelop.html" title="Capítulo 9. Personalización de KDevelop"><link rel="next" href="customizing-keyboard-shortcuts.html" title="Personalización de los accesos rápidos de teclado"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Personalización de la sangría del código</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="customizing-kdevelop.html">Anterior</a></td><td class="upCell">Personalización de <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="customizing-keyboard-shortcuts.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="customizing-code-indentation"></a>Personalización de la sangría del código</h2></div></div></div><p>A muchos de nosotros nos gusta tener el código fuente formateado de un modo particular. Muchos proyectos pueden forzar un estilo de sangría determinado. Es posible que ninguno de ellos coincida con el estilo por omisión de sangría que utiliza <span class="application">KDevelop</span>. No obstante, puede personalizar este comportamiento usando la opción del menú <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Preferencias</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Personalizar <span class="application">KDevelop</span></span></span> y seleccionando en la parte de la izquierda <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Formateador de código fuente</span></span>. Puede seleccionar cualquiera de los estilos de sangría predefinidos y más ampliamente usados, o bien definir el suyo propio añadiendo un nuevo estilo y editándolo. Es posible que no exista un modo exacto de volver a crear el estilo de sangría que usaban sus proyectos en el pasado, pero puede aproximarse bastante usando los ajustes de un nuevo estilo. Las dos imágenes inferiores muestran un ejemplo de ello.</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-5.png"><div class="caption"><p></p></div></div></div><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-6.png"><div class="caption"><p></p></div></div></div><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Nota</h3><p>En <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel"><span class="application">KDevelop</span> 4.2.2</span></span> puede crear un nuevo estilo para un tipo MIME determinado (<abbr class="abbrev">por ejemplo</abbr>, para los archivos de cabecera de C++), aunque dicho estilo no se mostrará en la lista de los posibles estilos para otros tipos MIME (<abbr class="abbrev">por ejemplo</abbr>, para los archivos de código fuente de C++). Por supuesto, es posible que este nuevo estilo sea apropiado para ambos tipos de archivos. En este caso deberá definir el estilo dos veces, uno para los archivos de cabecera y otro para los de código fuente. Este comportamiento se ha notificado como el <a class="ulink" href="https://bugs.kde.org/show_bug.cgi?id=272335" target="_top">error 272335 de <span class="application">KDevelop</span></a>.</p></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="customizing-kdevelop.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="customizing-keyboard-shortcuts.html">Siguiente</a></td></tr><tr><td class="prevCell">Personalización de <span class="application">KDevelop</span> </td><td class="upCell">Personalización de <span class="application">KDevelop</span></td><td class="nextCell"> Personalización de los accesos rápidos de teclado</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="customizing-keyboard-shortcuts.html"><html><head><title>Personalización de los accesos rápidos de teclado</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="customizing-kdevelop.html" title="Capítulo 9. Personalización de KDevelop"><link rel="prev" href="customizing-code-indentation.html" title="Personalización de la sangría del código"><link rel="next" href="customizing-code-auto-completion.html" title="Personalización de la terminación automática de código"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Personalización de los accesos rápidos de teclado</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="customizing-code-indentation.html">Anterior</a></td><td class="upCell">Personalización de <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="customizing-code-auto-completion.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="customizing-keyboard-shortcuts"></a>Personalización de los accesos rápidos de teclado</h2></div></div></div><p><span class="application">KDevelop</span> dispone de una lista casi ilimitada de accesos rápidos de teclado (algunos de ellos se listan en las <span class="quote">“<span class="quote">útiles secciones sobre accesos rápidos de teclado</span>”</span> de diversos capítulos de este manual) que se pueden modificar de acuerdo a sus gustos usando la opción <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Preferencias</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Configurar los accesos rápidos</span></span> del menú. En la parte superior del diálogo puede introducir una palabra a buscar para que únicamente se muestren las órdenes que coincidan; entonces podrá editar la combinación de teclas que esté asociada con dicha orden.</p><p>Uno que se ha encontrado muy útil para modificar es el que se usa para fijar la <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Alineación</span></span> de la tecla <span class="keycap"><strong>Tab</strong></span> (muchas personas no suelen introducir tabuladores a mano y prefieren que el editor elija la distribución del código fuente; con el acceso rápido de teclado cambiado, al pulsar <span class="keycap"><strong>Tab</strong></span>, <span class="application">KDevelop</span> aumenta o disminuye la alineación del código fuente). Otro de ellos es asignar <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Cambiar punto de interrupción</span></span> a <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>B</strong></span>, ya que se trata de una operación muy frecuente.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="customizing-code-indentation.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="customizing-code-auto-completion.html">Siguiente</a></td></tr><tr><td class="prevCell">Personalización de la sangría del código </td><td class="upCell">Personalización de <span class="application">KDevelop</span></td><td class="nextCell"> Personalización de la terminación automática de código</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="customizing-code-auto-completion.html"><html><head><title>Personalización de la terminación automática de código</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="customizing-kdevelop.html" title="Capítulo 9. Personalización de KDevelop"><link rel="prev" href="customizing-keyboard-shortcuts.html" title="Personalización de los accesos rápidos de teclado"><link rel="next" href="credits.html" title="Capítulo 10. Créditos y licencia"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Personalización de la terminación automática de código</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="customizing-keyboard-shortcuts.html">Anterior</a></td><td class="upCell">Personalización de <span class="application">KDevelop</span></td><td class="nextCell"><a accesskey="n" href="credits.html">Siguiente</a></td></tr></table></div><div id="contentBody"><div class="sect1"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="customizing-code-auto-completion"></a>Personalización de la terminación automática de código</h2></div></div></div><p>La terminación de código se describe en <a class="link" href="writing-source-code.html#auto-completion" title="Terminación automática">esta sección del manual sobre la escritura de código fuente</a>. En <span class="application">KDevelop</span>, proviene de dos fuentes: el editor y el motor de análisis sintáctico. El editor (<span class="application">Kate</span>) es un componente del entorno KDE que ofrece terminación automática basada en palabras que ya ha visto en otras partes del mismo documento. Esta terminación se puede identificar en la ayuda emergente por el icono que la precede:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-20.png"><div class="caption"><p></p></div></div></div><p>La terminación de código del editor se puede personalizar usando <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Preferencias</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Configurar el editor</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Edición</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Terminación automática</span></span>. En particular, puede seleccionar cuántos caracteres de una palabra necesita teclear antes de que la terminación automática entre en funcionamiento.</p><p>Por otra parte, la terminación automática propia de <span class="application">KDevelop</span> es mucho más potente, ya que tiene en cuenta información semántica sobre el contexto. Por ejemplo, sabe qué funciones miembro debe ofrecer cuando escribe <code class="varname">object.</code>, <abbr class="abbrev">etc.</abbr>, como se muestra a continuación:</p><p>
</p><div class="screenshot"><div xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="mediaobject"><img src="kdevelop-42.png"><div class="caption"><p></p></div></div></div><p>Esta información de contexto proviene de diversos complementos de implementaciones de lenguajes, que se pueden usar tras guardar un archivo determinado (para que se pueda comprobar el tipo de archivo y usar la implementación de lenguaje correcta).</p><p>La terminación de <span class="application">KDevelop</span> está preparada para mostrarse cuando teclea, en seguida, casi en cualquier lugar donde se pueda terminar alguna cosa. Esto se puede configurar en <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenu">Preferencias</span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guisubmenu">Configurar <span class="application">KDevelop</span></span></span> → <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guimenuitem">Implementación de lenguaje</span></span>. Si no se ha activado con anterioridad (como debería, por omisión), asegúrese de que ha marcado <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Activar invocación automática</span></span>.</p><p><span class="application">KDevelop</span> tiene dos modos de mostrar una terminación: la <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">terminación automática mínima</span></span> muestra solamente la información básica en ayudas emergentes (<abbr class="abbrev">es decir</abbr>, el nombre del espacio de nombres, la clase, la función o la variable). Esto se mostrará de forma similar a la terminación de <span class="application">Kate</span> (a excepción de los iconos).</p><p>Por otra parte, la <span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">terminación completa</span></span> también le mostrará el tipo de cada entrada y, en el caso de funciones, los argumentos que posee. Además, si está rellenando los argumentos de una función, la terminación completa le mostrará un cuadro adicional de información por encima del cursor que le mostrará el argumento actual sobre el que esté trabajando.</p><p>La terminación de código de <span class="application">KDevelop</span> también debe llevar al primer lugar y resaltar en verde cualquier elemento de terminación que coincida con el tipo esperado en la actualidad tanto en la terminación mínima como en la completa, lo que se conoce como las <span class="quote">“<span class="quote">mejores coincidencias</span>”</span>.</p><p>Las tres elecciones posibles para el nivel de terminación del diálogo de configuración son:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Siempre terminación mínima</span></span>: no mostrar la <span class="quote">“<span class="quote">Terminación completa</span>”</span> </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Terminación automática mínima</span></span>: mostrar solo la <span class="quote">“<span class="quote">Terminación completa</span>”</span> cuando la terminación automática se haya lanzado de forma manual (<abbr class="abbrev">es decir</abbr>, cada vez que pulse la combinación <span class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Espacio</strong></span>) </p></li><li class="listitem"><p><span xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" class="guiitem"><span class="guilabel">Siempre terminación completa</span></span>: mostrar siempre la <span class="quote">“<span class="quote">Terminación completa</span>”</span> </p></li></ul></div></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="customizing-keyboard-shortcuts.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="credits.html">Siguiente</a></td></tr><tr><td class="prevCell">Personalización de los accesos rápidos de teclado </td><td class="upCell">Personalización de <span class="application">KDevelop</span></td><td class="nextCell"> Créditos y licencia</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="working-with-version-control-systems.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"><a accesskey="n" href="customizing-code-indentation.html">Siguiente</a></td></tr><tr><td class="prevCell">Trabajar con sistemas de control de versiones </td><td class="upCell"> </td><td class="nextCell"> Personalización de la sangría del código</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME><FILENAME filename="credits.html"><html><head><title>Capítulo 10. Créditos y licencia</title><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-default.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-docs.css"><link rel="stylesheet" type="text/css" href="help:/kdoctools5-common/kde-localised.css"><meta name="generator" content="DocBook XSL Stylesheets Vsnapshot"><meta name="keywords" content="KDE, KDevelop, IDE, desarrollo, programación"><link rel="home" href="index.html" title="Manual de KDevelop"><link rel="up" href="index.html" title="Manual de KDevelop"><link rel="prev" href="customizing-code-auto-completion.html" title="Personalización de la terminación automática de código"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="GENERATOR" content="KDE XSL Stylesheet V1.14 using libxslt"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div id="content"><div id="header"><div id="header_content"><div id="header_left"><div id="header_right"><img src="help:/kdoctools5-common/top-kde.jpg" width="36" height="34"> Créditos y licencia</div></div></div></div><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="customizing-code-auto-completion.html">Anterior</a></td><td class="upCell"> </td><td class="nextCell"></td></tr></table></div><div id="contentBody"><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="credits"></a>Capítulo 10. Créditos y licencia</h1></div></div></div><p>Para el copyright de la documentación, vea el <a class="ulink" href="https://userbase.kde.org/index.php?title=KDevelop4/Manual&amp;action=history" target="_top">historial de la página de KDevelop4/Manual</a></p><p>Traducido por Eloy Cuadra <code class="email">(ecuadra AT eloihr.net)</code>.</p><p><a name="gnu-fdl"></a>Esta documentación está sujeta a los términos de la <a class="ulink" href="help:/kdoctools5-common/fdl-license.html" target="_top">Licencia de Documentación Libre GNU</a>.</p></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"><a accesskey="p" href="customizing-code-auto-completion.html">Anterior</a></td><td class="upCell"><a accesskey="h" href="index.html">Inicio</a></td><td class="nextCell"></td></tr><tr><td class="prevCell">Personalización de la terminación automática de código </td><td class="upCell"> </td><td class="nextCell"> </td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME></div></div><div id="footer"><div class="navCenter"><table class="navigation"><tr><td class="prevCell"></td><td class="upCell"> </td><td class="nextCell"><a accesskey="n" href="what-is-kdevelop.html">Siguiente</a></td></tr><tr><td class="prevCell"> </td><td class="upCell"> </td><td class="nextCell"> ¿Qué es <span class="application">KDevelop</span>?</td></tr></table></div><div id="footer_text">¿Le gustaría hacer algún comentario o aportar una actualización a esta página?<br>Envíe sus comentarios al <a href="mailto:kde-doc-english@kde.org" class="footer_email">equipo de documentación de KDE</a></div></div></div></body></html></FILENAME>

Generated by dwww version 1.15 on Thu Jun 27 16:19:09 CEST 2024.