KDevelop4/Manual/Arbejdet med kildekode

From KDE UserBase Wiki
Revision as of 10:09, 21 May 2011 by Claus chr (talk | contribs) (Importing a new version from external source)

Arbejdet med kildekode

Ved siden af fejlsøgning er skrivning og læsning af kildekode det, som du vil bruge mest tid med, når du udvikler software. Til dette formål giver KDevelop dig mange forskelige måder at udforske kildekoden og effektivisere skrivning af den. Som det vises i detaljer i de følgende afsnit, så er KDevelop ikke blot en kodeeditor — den er et system til at håndtere kildekode, som giver dig forskellige visninger af information, som findes i de filer, som tilsammen udgør kildekoden i din session.

Værktøjer og visninger

Til arbejdet med projekter har KDevelop begrebet værktøjer. Et værktøj giver dig en særlig visning af kildekoden eller en handling, som det kan udføre. Værktøjer repræsenteres af knapper, som findes rundt omkring i vinduets kant (med lodret tekst langs venstre og højre kant eller vandret langs bunden). Hvis du klikker på dem, så udvides de til et undervindue — en visning — indenfor hovedvinduet. Hvis du klikker på værktøjsknappen en gang til, så forsvinder visningen igen.

Note

For at få et undervindue til af forsvinde kan du også klikke på knappen x øverst til højre i undervinduet; dette fjerner dog også den tilhørende værktøjsknap fra vindueskanten, i hvert fald i KDevelop 4.2.x; og den skal du bruge for at få undervinduet frem igen. Se herunder, hvordan du får knappen tilbage til vindueskanten på samme måde, som du får enhver anden værktøjsknap placeret der. Denne opførsel er rapporteret som bug 270018)

Billedet ovenfor viser et eksempel på værktøjer placeret i den venstre og højre kant. I billeder er værktøjet Klasser åbent til venstre og værktøjet Tekststumper til højre sammen med en editor til en kildefil i midten. I praksis vil du nok kun have editoren åben og måske værktøjet Klasser eller Kodebrowser til venstre det meste af tiden. Andre værktøjer vil sikkert kun være åbne midlertidigt mens du bruger dem, sådan at der bliver mere plads til editoren.

Når du kører KDevelop første gang, så skulle du allerede have værktøjsknappen Projekter. Klik på den: det vil åbne et undervindue, som forneden viser de projekter, som du har føjet til sessionen og en visning af mapperne i dit projekt for oven.

Der er mange andre værktøjer, som du kan bruge i KDevelop, men deres knapper er ikke alle til stede i vindueskanten fra begyndelsen. For at føje flere til vælger du menuen Vindue -> Tilføj værktøjsvivning.... Her er nogle, som du sikkert vil få glæde af:

  • Klasser: En fuldstændig liste af alle klasser, som bliver defineret i en af din sessions projekter med alle deres medlemsfunktioner og variable. Klik på et medlem for at åbne kildeeditorens vindue med markøren på det sted, hvor det emne, du klikkede på er defineret.
  • Dokumenter: Viser de filer, som du for nylig har arbejdet med ordnet efter type (fx kildefil, patchfil eller rent tekstdokument).
  • Kodebrowser: Dette værktøj viser ting, der er relaterede til det, som du aktuelt arbejder med afhængigt af, hvor markøren er placeret. Hvis den fx er på en #include linje, så vises information om den fil der bliver inkluderet, så som hvilke klasser, der deklareres i filen; hvis du er på en tom linje på filniveau, så vises de klasser og funktioner, som deklareres eller defineres i den aktuelle fil (alle vises som links: klikker du på dem, så bringes du til det sted i filen, hvor deklarationen eller definitionen er); hvis du er i en funktionsdefinition, så vises der, hvor funktionen deklareres og hvor den bruges.
  • Filsystem: Giver dig en trævisning af filsystemet.
  • Dokumentation: Lader dig søge efter man-sider og andre hjælpedokumenter.
  • Tekststumper: Her kan du gemme tekststumper, som du ofte har brug for og ikke har lyst til at skulle skrive hver gang. I projektet, som vises i billedet ovenfor er der ofte brug for kode som dette:
    for (typename Triangulation<dim>::active_cell_iterator cell = triangulation.begin_active(); cell != triangulation.end(); ++cell)
    Det er besværligt udtryk, med det sen næsten ud på samme måde, hver gang du har brug for sådan en løkke. Det gør udtrykket til en god kandidat til en tekststump.
  • Konsole: Åbner et vindue med en kommandolinje i KDevelops hovedvindue til de situationer, hvor du blot skal have udført enkelte kommandoer (fx hvis du skal køre ./configure).

En fuldstændig liste med værktøjer og visninger findes her.

For mange programmører er det vigtigst at have god plads i lodret retning. For at opnå dette kan du arrangere dine værktøjsvisninger i venstre og højre vindueskant. For at flytte et værktøj højreklikker du på dets knap og vælger en ny position til det.

Tilstande og arbejdssæt

Hvis du er kommet så langt, så se lidt på øverste højre hjørne af KDevelops hovedvindue. Som det ses i billedet finder du her de tre tilstande, som KDevelop kan være i: Kode (den tilstand, som vi diskuterer i dette kapitel om arbejdet med kildekoden), Fejlsøgning (se Fejlsøgning af programmer) og Eftersyn (se Arbejdet med versionskontrolsystemer).

Each mode has its own set of tools that are stacked around the perimeter, and each mode also has a working set of currently open files and documents. Furthermore, each such working set is associated with a current session, i.e. we have the relationship shown at the right. Note that the files in the working set come from the same session, but they may come from different projects that are part of the same session.

If you open KDevelop the first time, the working set is empty — there are no open files. But as you open files for editing (or debugging, or reviewing in the other modes) your working set grows. The fact that your working set is non-empty is indicated by a symbol in the tab, as shown on the right. You will notice that whenever you close KDevelop and later start it again, the working set is saved and restored, i.e. you get the same set of open files.

If you hover your mouse over the symbol for the working set, you get a tooltip that shows you which files are currently open in this working set (here: the step-32.cc and step-1.cc files). Clicking on the red minus sign closes the tab for the corresponding file. Maybe more importantly, clicking on the correspondingly named button allows you to close the entire working set at once (i.e. to close all currently open files). The point about closing a working set, however, is that it doesn't just close all files, it actually saves the working set and opens a new, still empty one. You can see this here:

Note the two symbols to the left of the three mode tabs (the heart and the unidentifiable symbol to its left). Each of these two symbols represents a saved working set, in addition to the currently open working set. If you hover your mouse over the heart symbol, you'll get something like this:

It shows you that the corresponding working set contains two files and their corresponding project names: Makefile and changes.h. Clicking Load will close and save the current working set (which as shown here has the files tria.h and tria.cc open) and instead open the selected working set. You can also permanently delete a working set, which removes it from the set of saved working sets.

Some useful keyboard shortcuts

KDevelop's editor follows the standard keyboard shortcuts for all usual editing operations. However, it also supports a number of more advanced operations when editing source code, some of which are bound to particular key combinations. The following are frequently particularly helpful:

Jumping around in code
Ctrl+Alt+O Quick open file: enter part of a filename and select among all the files in the current session's projects' directory trees that match the string; the file will then be opened
Ctrl+Alt+C Quick open class: enter part of a class name and select among all class names that match; the cursor will then jump to the class declaration
Ctrl+Alt+M Quick open function: enter part of a (member) function name and select among all names that match; note that the list shows both declarations and definitions and the cursor will then jump to the selected item
Ctrl+Alt+Q Universal quick open: type anything (file name, class name, function name) and get a list of anything that matches to select from
Ctrl+Alt+N Outline: Provide a list of all things that are happening in this file, e.g. class declarations and function definitions
Ctrl+, Jump to definition of a function if the cursor is currently on a function declaration
Ctrl+. Jump to declaration of a function or variable if the cursor is currently in a function definition
Ctrl+Alt+PageDown Jump to next function
Ctrl+Alt+PageUp Jump to previous function
Ctrl+G Goto line
Searching and replacing
Ctrl+F Find
F3 Find next
Ctrl+R Replace
Ctrl+Alt+F Find-Replace in multiple files
Other things
Ctrl+_ Collapse one level: remove this block from view, for example if you want to focus on the bigger picture within a function
Ctrl++ Expand one level: undo the collapsing
Ctrl+D Comment out selected text or current line
Ctrl+Shift+D Comment in selected text or current line
Alt+Shift+D Document the current function. If the cursor is on a function or class declaration then hitting this key will create a doxygen-style comment pre-populated with a listing of all parameters, return values, etc.
Ctrl+T Transpose the current and the previous character
Ctrl+K Delete the current line (note: this is not just emacs' "delete from here to the end of the line")