Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Home
Quick Start
Recent changes
Contributors
Start Contributing
Modify Existing Pages
Add New Pages
Page Elements Explained
Display elements markup
More Markup Help
Translators
Get a Translator Account
Languages represented
Working with Languages
Start Translating
Request Release
Search
Search
English
Log in
Personal tools
Log in
Export translations
Translate
English
Language statistics
Message group statistics
Export
Tools
Tools
move to sidebar
hide
Actions
Language statistics
Message group statistics
Export
General
Special pages
Printable version
Settings
Group
Accessibility
Accessibility/Application Overview
Accessibility/Plasma
Adding an entry to the Create New menu
Akonadi
Akonadi and AddressBook
Akonadi/Postgres update
Akregator
Akregator/Tutorials/How to get RSS from a Wordpress blog?
Amarok
Amarok Manual
Amarok/Manual
Amarok/Manual/AmarokWindow
Amarok/Manual/AmarokWindow/ContextPane
Amarok/Manual/AmarokWindow/MediaSources
Amarok/Manual/AmarokWindow/PlaylistPane
Amarok/Manual/AmarokWindow/Toolbar
Amarok/Manual/ConfiguringAmarok
Amarok/Manual/ConfiguringAmarok/ChangingLayout
Amarok/Manual/Introduction
Amarok/Manual/Organization
Amarok/Manual/Organization/Applets
Amarok/Manual/Organization/Collection
Amarok/Manual/Organization/Collection/ExternalDatabase
Amarok/Manual/Organization/Collection/OrganizeCollection
Amarok/Manual/Organization/Collection/RemoteCollections
Amarok/Manual/Organization/Collection/RemoteCollections/Ampache
Amarok/Manual/Organization/Collection/RemoteCollections/DAAP
Amarok/Manual/Organization/Collection/RemoteCollections/Samba
Amarok/Manual/Organization/Collection/RemoteCollections/UPnP
Amarok/Manual/Organization/Collection/SearchInCollection
Amarok/Manual/Organization/Collection/StatisticsSynchronization
Amarok/Manual/Organization/Collection/WorkingWithMediaDevices
Amarok/Manual/Organization/CollectionScanning
Amarok/Manual/Organization/CoverManager
Amarok/Manual/Organization/ScriptManager
Amarok/Manual/Organization/TagEditor
Amarok/Manual/Organization/Transcoding
Amarok/Manual/Playlist
Amarok/Manual/Playlist/AutomaticPlaylistGenerator
Amarok/Manual/Playlist/DynamicPlaylists
Amarok/Manual/Playlist/PlaylistFiltering
Amarok/Manual/Playlist/QueueManager
Amarok/Manual/Playlist/SavedPlaylists
Amarok/Manual/References
Amarok/Manual/References/Credits and License
Amarok/Manual/References/KeybindingReference
Amarok/Manual/References/KeybindingReference/AmarokShortcuts
Amarok/Manual/References/KeybindingReference/GlobalShortcuts
Amarok/Manual/References/MenuAndCommandReference
Amarok/Manual/References/MenuAndCommandReference/AmarokMenu
Amarok/Manual/References/MenuAndCommandReference/Help
Amarok/Manual/References/MenuAndCommandReference/Playlist
Amarok/Manual/References/MenuAndCommandReference/Settings
Amarok/Manual/References/MenuAndCommandReference/Tools
Amarok/Manual/References/MenuAndCommandReference/ViewMenu
Amarok/Manual/Various
Amarok/Manual/Various/AmarokOnOtherPlatforms
Amarok/Manual/Various/AmarokOnOtherPlatforms/NonKDE Desktops
Amarok/Manual/Various/AmarokOnOtherPlatforms/OSX
Amarok/Manual/Various/AmarokOnOtherPlatforms/Windows
Amarok/Manual/Various/FAQ
Amarok/Manual/Various/Moodbar
Amarok/Manual/Various/ReplayGain
Amarok/Manual/Various/TroubleshootingAndCommonProblems
Amarok/QuickStartGuide
Amarok/QuickStartGuide/GettingStarted
Amarok/QuickStartGuide/Glossary
Amarok/QuickStartGuide/HowToDealWithProblems
Amarok/QuickStartGuide/Playlists
Amarok/QuickStartGuide/TheAmarokWindow
Amarok/QuickStartGuide/TheContextView
Amarok/QuickStartGuide/TheMusicCollection
An introduction to KDE
Apper
Applications
Applications/Accessibility
Applications/Desktop
Applications/Development
Applications/Education
Applications/Games
Applications/Graphics
Applications/Internet
Applications/Multimedia
Applications/Office
Applications/Science
Applications/System
Applications/Utilities
Archive:Artikulate
Archive:Browser Configuration/Firefox Dialog Integration
Archive:Build your first KDE application on Kubuntu
Archive:ChoqoK
Archive:Kde-pim
Archive:Kdenlive/Manual/Capturing
Archive:Kdenlive/Manual/CapturingAudio
Archive:Kdenlive/Manual/Clip Menu
Archive:Kdenlive/Manual/Credits and License
Archive:Kdenlive/Manual/Edit Menu
Archive:Kdenlive/Manual/Edit Menu/Copy
Archive:Kdenlive/Manual/Edit Menu/Paste
Archive:Kdenlive/Manual/Edit Menu/Paste Effects
Archive:Kdenlive/Manual/Edit Menu/Redo
Archive:Kdenlive/Manual/Edit Menu/Undo
Archive:Kdenlive/Manual/Effects/Alpha manipulation
Archive:Kdenlive/Manual/Effects/Alpha manipulation/Alpha operations
Archive:Kdenlive/Manual/Effects/Alpha manipulation/Alpha shapes
Archive:Kdenlive/Manual/Effects/Alpha manipulation/Blue Screen
Archive:Kdenlive/Manual/Effects/Alpha manipulation/Color Selection
Archive:Kdenlive/Manual/Effects/Alpha manipulation/Rotoscoping
Archive:Kdenlive/Manual/Effects/Analysis and Data
Archive:Kdenlive/Manual/Effects/Artistic
Archive:Kdenlive/Manual/Effects/Audio channels
Archive:Kdenlive/Manual/Effects/Audio Correction
Archive:Kdenlive/Manual/Effects/Blur and hide
Archive:Kdenlive/Manual/Effects/Blur and hide/Auto Mask
Archive:Kdenlive/Manual/Effects/Colour Correction
Archive:Kdenlive/Manual/Effects/Colour Correction/RGB adjustment
Archive:Kdenlive/Manual/Effects/Crop and transform
Archive:Kdenlive/Manual/Effects/Crop and transform/Pan and Zoom
Archive:Kdenlive/Manual/Effects/Custom
Archive:Kdenlive/Manual/Effects/Distort
Archive:Kdenlive/Manual/Effects/Enhancement
Archive:Kdenlive/Manual/Effects/Fade
Archive:Kdenlive/Manual/Effects/Fun
Archive:Kdenlive/Manual/Effects/Misc
Archive:Kdenlive/Manual/Effects/Motion
Archive:Kdenlive/Manual/File Menu
Archive:Kdenlive/Manual/File Menu/DVD Wizard
Archive:Kdenlive/Manual/File Menu/New
Archive:Kdenlive/Manual/File Menu/Open
Archive:Kdenlive/Manual/File Menu/Open Recent
Archive:Kdenlive/Manual/File Menu/Quit
Archive:Kdenlive/Manual/File Menu/Revert
Archive:Kdenlive/Manual/File Menu/Save
Archive:Kdenlive/Manual/File Menu/Save As
Archive:Kdenlive/Manual/File Menu/Transcode Clips
Archive:Kdenlive/Manual/Introduction
Archive:Kdenlive/Manual/KdenliveOnOtherPlatforms
Archive:Kdenlive/Manual/KdenliveOnOtherPlatforms/Non-KDE Desktops
Archive:Kdenlive/Manual/KdenliveOnOtherPlatforms/OSX
Archive:Kdenlive/Manual/Menu
Archive:Kdenlive/Manual/Monitor Menu
Archive:Kdenlive/Manual/Monitors
Archive:Kdenlive/Manual/Project Menu
Archive:Kdenlive/Manual/Project Menu/Render
Archive:Kdenlive/Manual/Project Menu/Render/Render Profile Parameters
Archive:Kdenlive/Manual/Projects and Files
Archive:Kdenlive/Manual/Projects and Files/Archiving
Archive:Kdenlive/Manual/Projects and Files/Backup
Archive:Kdenlive/Manual/Projects and Files/Clips
Archive:Kdenlive/Manual/Projects and Files/Importing
Archive:Kdenlive/Manual/Projects and Files/Management
Archive:Kdenlive/Manual/Projects and Files/Notes
Archive:Kdenlive/Manual/Projects and Files/Project
Archive:Kdenlive/Manual/Projects and Files/Project Settings
Archive:Kdenlive/Manual/Projects and Files/Project Tree
Archive:Kdenlive/Manual/Rendering
Archive:Kdenlive/Manual/Settings Menu
Archive:Kdenlive/Manual/ShootingHints
Archive:Kdenlive/Manual/Timeline
Archive:Kdenlive/Manual/Timeline Menu
Archive:Kdenlive/Manual/Timeline/Grouping
Archive:Kdenlive/Manual/Timeline/Guides
Archive:Kdenlive/Manual/Timeline/Right Click Menu
Archive:Kdenlive/Manual/Titles
Archive:Kdenlive/Manual/Tool Menu
Archive:Kdenlive/Manual/Toolbars
Archive:Kdenlive/Manual/Transitions
Archive:Kdenlive/Manual/Troubleshooting and Common Problems
Archive:Kdenlive/Manual/Tutorials
Archive:Kdenlive/Manual/Tutorials/Split Screen How To
Archive:Kdenlive/Manual/Useful Information
Archive:Kdenlive/Manual/Useful Information/FAQ
Archive:Kdenlive/Manual/Useful Information/Shortcuts
Archive:Kdenlive/Manual/Useful Information/Surround Sound
Archive:Kdenlive/Manual/Useful Information/Tips Tricks
Archive:Kdenlive/Manual/Useful Information/Useful Resources
Archive:Kdenlive/Manual/View Menu
Archive:Kdenlive/Manual/Windows Issues
Archive:Kdessh
Archive:KOffice
Archive:KOrganizer/Download
Archive:Obsolete
Ark
Artwork
Asking Questions
Audex
Bangarang
BasKet
BlinKen
Blogilo
Bluedevil
Braindump
Browser Configuration
Browser Configuration/Mousegestures for all Browsers
Browser Configuration/Opera
Calligra
Calligra/Download
Calligra/Handbooks
Cantor
ChoqoK/Using ChoqoK
Color Management
Common Tasks
Concepts/OpenPGP For Beginners
Concepts/OpenPGP Getting Started
Concepts/OpenPGP Help Spread
Configure your desktop
Create a Page
Desktop Effects Performance
Digikam
digiKam
Digikam/Adding Borders To Your Photos
Digikam/AddTextures
Digikam/AspectRatios
Digikam/Assign Keyboard Shortcuts to Tags in digiKam
Digikam/Basic RAW Processing
Digikam/Batch Process
Digikam/Batch Queue Manager and Script
Digikam/Black and White
Digikam/BleachBypassEffect
Digikam/Bugs
Digikam/Calendars
Digikam/Calibrate and Profile Monitor
Digikam/ChangeFormat
Digikam/Check Database
Digikam/Color Labels and Picks
Digikam/Compress
Digikam/Configure the Main Toolbar in digiKam
Digikam/Duplicates
Digikam/Effects
Digikam/Exif
Digikam/Export via DNLA
Digikam/Exposure Blending
Digikam/Face Detection
Digikam/Face Recognition
Digikam/Facebook
Digikam/Faded Effect
Digikam/Geotag Photos with Android
Digikam/Geotagging
Digikam/Geotagging in digiKam 2.0
Digikam/Import Photos in Digikam
Digikam/Lens Correction Using digiKam
Digikam/Lens Distortion
Digikam/Levels Adjust
Digikam/LightTable
Digikam/Local Contrast
Digikam/Maintenance
Digikam/Manage Photos from Multiple digiKam Installations
Digikam/Metadata
Digikam/MetadataToRaw
Digikam/Negatives
Digikam/Noise Reduction
Digikam/Optimise
Digikam/Panorama
Digikam/Performing Fuzzy Searches In digiKam
Digikam/Photoshop Preset Curves
Digikam/Picasa
Digikam/Process RAW Files
Digikam/Quick Tip:Disable Certain File Types
Digikam/RedEye
Digikam/Renaming Photos
Digikam/Sharpening
Digikam/Simple Toning
Digikam/Soft Proofing
Digikam/Straighten
Digikam/TaggingEfficient
Digikam/Tethered Shooting
Digikam/Thumbnails
Digikam/Tour
Digikam/Tutorials
Digikam/Using digiKam with MySQL
Digikam/Using the Advanced Search Tool In digiKam
Digikam/Using XMP Sidecar support in digiKam 2
Digikam/Versioning
Digikam/Vintage Effect
Digikam/Watermark
Digikam/Wikimedia Commons
Digikam/Windows
Discover
Dolphin
Dolphin/Batch Rename
Dolphin/Customize Folder Icon
Dolphin/File Management
Dragon Player
Edit Markup
File transfers
Filelight
Flow
GCompris
General KDE Software FAQs
Getting Help
Getting started with KAlgebra
Glossary
Gluon
Google Talk support
Gwenview
Gwenview/Hidden Configuration Options
Help:Wiki Structure
History of KDE
Homerun
How to chat with other KDE users
How To Convert a UserBase Manual to Docbook
Image Kimdaba
Installing KDE neon
IRC Channels
Jargon File
Jovie
Juk
K3b
K3b/Burn an Audio Cd with K3b
K9Copy
KAddressBook
KAddressBook/index
KAddressBook/Tutorials/How to add a new contact?
KAddressBook/Tutorials/How to create a new address book?
Kaffeine
Kaffeine-TV
KAlarm
KAlgebra
KAlgebra/Console Tab
KAlgebra/Homework
KAlgebra/Probabilities
Kalzium
Kalzium/Other Chemistry-Applications
Kamoso
Kanagram
KAppTemplate
Karbon
Karbon/Tutorials/Artistic Text Shape
Kate
Kbarcode
KBibTeX
KBibTeX/Development
Kbluetooth
KBruch
KCalc
KCells
KCharSelect
KChart
KColorChooser
KColorEdit
KDbg
KDE Connect/Tutorials/Adding commands
KDE Connect/Tutorials/Useful commands
KDE Partition Manager
KDE preinstalled
KDE SVN
KDE System Administration
KDE UserBase Wiki:About
KDE UserBase Wiki:General disclaimer
KDE UserBase Wiki:Privacy policy
KDE Wallet Manager
KDEConnect
Kdenlive
Kdenlive/Manual
Kdenlive/Manual/alpha operation transitions
Kdenlive/Manual/BugReporting
Kdenlive/Manual/Clip Menu/Delete Clip
Kdenlive/Manual/Clip Menu/Edit Clip
Kdenlive/Manual/Clip Menu/Extract Audio
Kdenlive/Manual/Clip Menu/Locate Clip
Kdenlive/Manual/Clip Menu/Rename Clip
Kdenlive/Manual/Clip Menu/Stabilize
Kdenlive/Manual/Edit Menu/Find
Kdenlive/Manual/Effects
Kdenlive/Manual/Effects And Transitions
Kdenlive/Manual/Effects/Audio
Kdenlive/Manual/Full Luma
Kdenlive/Manual/Installation
Kdenlive/Manual/Project Menu/Create Folder
Kdenlive/Manual/Project Menu/Online Resources
Kdenlive/Manual/QuickStart
Kdenlive/Manual/Timeline Menu/Insert Clip Zone
Kdenlive/Manual/Timeline Menu/Tracks
Kdenlive/Manual/Timeline/Editing
Kdenlive/Manual/Titles/Download New Title Templates
Kdenlive/Manual/Transitions/Affine
Kdenlive/Manual/Transitions/alphaxor
Kdenlive/Manual/Transitions/Composite
Kdenlive/Manual/Transitions/Hue
Kdenlive/Manual/Transitions/screen
Kdenlive/Manual/Transitions/Wipe
Kdenlive/Manual/View Menu/Audio Spectrum
Kdenlive/Manual/View Menu/Clip Monitor
Kdenlive/Manual/View Menu/Effect List
Kdenlive/Manual/View Menu/Load Layout
Kdenlive/Manual/View Menu/Save Layout As
Kdenlive/Manual/View Menu/Screen Grab
Kdenlive/Manual/View Menu/Show Title Bars
Kdenlive/Manual/View Menu/Undo History
Kdesvn
KDevelop
KDevelop/Install4.5
KDevelop4
KDevelop4/FAQ
KDevelop4/Manual
KDevelop4/Manual/Appendix A: Building KDevelop from Sources
KDevelop4/Manual/Building (compiling) projects with custom Makefiles
KDevelop4/Manual/Code generation with templates
KDevelop4/Manual/Customizing KDevelop
KDevelop4/Manual/Debugging programs
Kdevelop4/Manual/Meet KDevelop
KDevelop4/Manual/Running programs
KDevelop4/Manual/Sessions and projects
KDevelop4/Manual/Working with source code
KDevelop4/Manual/Working with version control systems
KDevelop4/TipsAndTricks
KDevelop5 Manual
KDevelop5/Manual
KDevelop5/Manual/Appendix A: Building KDevelop from Sources
KDevelop5/Manual/Building (compiling) projects with custom Makefiles
KDevelop5/Manual/Code generation with templates
KDevelop5/Manual/Customizing KDevelop
KDevelop5/Manual/Debugging programs
Kdevelop5/Manual/Meet KDevelop
KDevelop5/Manual/Running programs
KDevelop5/Manual/Sessions and projects
KDevelop5/Manual/Working with source code
KDevelop5/Manual/Working with version control systems
KDiff3
KDirStat
KDiskFree
KEuroCalc
Kexi
Kexi Handbook
Kexi/Handbook
Kexi/Handbook/Appendix B. Comparing Kexi to other database applications
Kexi/Handbook/Building Simple Databases
Kexi/Handbook/Building Simple Databases/Designing Database Queries
Kexi/Handbook/Building Simple Databases/Designing Database Tables
Kexi/Handbook/Building Simple Databases/Designing Database Tables/The Table Designer window
Kexi/Handbook/Building Simple Databases/Designing Forms
Kexi/Handbook/Building Simple Databases/Designing Forms/Actions
Kexi/Handbook/Building Simple Databases/Designing Forms/Assigning data sources
Kexi/Handbook/Building Simple Databases/Designing Forms/Forms versus tables
Kexi/Handbook/Building Simple Databases/Designing Forms/Inserting text labels
Kexi/Handbook/Building Simple Databases/Designing Forms/Inserting widgets - text fields
Kexi/Handbook/Building Simple Databases/Designing Forms/Most important terms
Kexi/Handbook/Building Simple Databases/Designing Forms/Setting the tab order
Kexi/Handbook/Building Simple Databases/Designing Forms/Setting widgets size and position by hand
Kexi/Handbook/Building Simple Databases/Designing Forms/Using the Widgets tab
Kexi/Handbook/Building Simple Databases/Designing Forms/Widget layouts
Kexi/Handbook/Building Simple Databases/Designing Forms/Working with form design
Kexi/Handbook/Building Simple Databases/Entering Data Into Tables
Kexi/Handbook/Building Simple Databases/Entering Data Using Forms
Kexi/Handbook/Configuring Kexi
Kexi/Handbook/Configuring Kexi/Docking and undocking side panels
Kexi/Handbook/Credits and License
Kexi/Handbook/Introduction
Kexi/Handbook/Introduction to Databases/Database and Spreadsheet
Kexi/Handbook/Introduction to Databases/Database Creation Software
Kexi/Handbook/Introduction to Databases/Database Design
Kexi/Handbook/Introduction to Databases/What Is a Database?
Kexi/Handbook/Introduction to Databases/Who Needs a Database?
Kexi/Handbook/Kexi Basics
Kexi/Handbook/Kexi Basics/Creating a New Database File
Kexi/Handbook/Kexi Basics/Kexi Databases
Kexi/Handbook/Kexi Basics/Opening an existing Kexi database file
Kexi/Handbook/Kexi Basics/Opening an existing Kexi database file/Opening a database file in the Open Existing Project dialog
Kexi/Handbook/Kexi Basics/Opening an existing Kexi database file/Opening an existing Kexi database file by clicking on .kexi file's icon
Kexi/Handbook/Kexi Basics/The Kexi Main Window
Kexi/Handbook/Kexi Basics/Using built-in help
Kexi/Handbook/References/Command-Line Options
Kexi/Handbook/Where to go next
Kexi/Tutorials
Kexi/Tutorials/Drilling Down on Facebook Data
Kexi/Tutorials/Importing SQLite database into Kexi
Kexi/Tutorials/Reports/Kexi Reports for Beginners
KFileReplace
KFind
KFloppy
KFormula
KFTPgrabber
KGeography
KGeography/Making Maps
KGet
KGpg
KGraphviewer
KHangMan
KHelpCenter
KIconEdit
Kid3
Kig
Kig/FAQ
Kig/Screenshots
Kile
KImageMapEditor
KInfoCenter
Kio gopher
Kio-audiocd
KIPI
Kiten
Kivio
KJots
KJots/Import KNowIt Into KJots
KJots/Recover Deleted KJots Books
Kleopatra
KLettres
KLinkStatus
Klipper
Klipper/How to search in phone books using Klipper
Klipper/Pastebins
KMag
KMail
KMail/Account Wizard
KMail/Backup Options
Kmail/Configuring Kmail
Kmail/Configuring Kmail/Identities
KMail/Courses Information Openpgp
KMail/Devs
Kmail/Distributions/Gentoo
Kmail/Distributions/OpenSUSE
KMail/FAQs Hints and Tips
Kmail/Folder Properties
Kmail/Getting Started
KMail/gpg
KMail/Import Options
KMail/PGP MIME
KMail/Screenshots
KMail/Tools
Kmail/Using Folders
Kmail/Using Kmail General
KMediaFactory
KMess
KMid
KMix
KMLDonkey
KMouseTool
KMouth
KMPlayer
KmPlot
KmPlot/Using Sliders
KMyMoney
KNemo
KNetworkManager
KNode
KNode/KNode for mailing lists
KNotes
Koko
KolorManager
KolourPaint
Kompare
Konqueror
Konqueror/Web Shortcuts
Konsole
KonsoleDevelopment
KonsoleKalendar
Kontact
Kontact Touch
Kontact Touch/About
Kontact Touch/Harmattan
Kontact Touch/Maemo5
Kontact Touch/MeeGo
Kontact Touch/Screenshots
Kontact Touch/WinCE
Kontact/Kontact Palm Pre Sync
Kontact/SMS
Konversation
Konversation/Browsers
Konversation/Configuring SASL authentication
Konversation/Distributions
Konversation/Distributions/ArchLinux
Konversation/Distributions/ArkLinux
Konversation/Distributions/Chakra
Konversation/Distributions/Exherbo
Konversation/Distributions/Fedora
Konversation/Distributions/Gentoo
Konversation/Distributions/Kubuntu
Konversation/Distributions/Mageia
Konversation/Distributions/openSUSE
Konversation/Distributions/PCLinuxOS
Konversation/Distributions/Slackware
Konversation/Distributions/Xandros
Konversation/FAQ
Konversation/KDE3 Sources
Konversation/KDE4 Sources
Konversation/Releases
Konversation/Scripts/Ghosttrick
Konversation/Scripts/Import mIRC server list
Konversation/Scripts/Media
Konversation/Scripts/Scripting guide
Konversation/Sources
Konversation/Tips and Tricks
Kooka
Kopete
Kopete/AIM
Kopete/Auto Replace
Kopete/Firewall
Kopete/ICQ
Kopete/ICQ/About ICQ
Kopete/ICQ/add friends
Kopete/ICQ/connect through kopete
Kopete/ICQ/creating an account
Kopete/Jabber
Kopete/Jabber Muc
Kopete/Jabber Transport
Kopete/Jabber/About Jabber XMPP
Kopete/Jabber/Adding friends
Kopete/Jabber/Create your Jabber account
Kopete/Jabber/Fill in your account data in Kopete
Kopete/Jabber/First steps
Kopete/Jabber/Messaging and sending files
Kopete/Jabber/More info on Kopete
Kopete/Jabber/Useful configuration hints
Kopete/MSN
Kopete/OTR
Kopete/Skype Plugin
Kopete/Supported Protocols Overview
Kopete/Webcam Support
Kopete/Winpopup
Kopete/Yahoo
KOrganizer
KOrganizer/Alarms
KOrganizer/Appointments
KOrganizer/Calendar
KOrganizer/Custom
KOrganizer/Future
KOrganizer/ImpData
KOrganizer/Links
KOrganizer/Screenshots
KOrganizer/ToDo
KOrganizer/Web
KPackage
KPackageKit
KPager
KPDF
KPhotoAlbum
KPhotoAlbum FAQ
KPilot
KPlato
KPlayer
KPPP
Kraft
Krdc
Krecipes
KRename
Krfb
Kronometer
KrossWordPuzzle
KrossWordPuzzle/Crossword Types
KrossWordPuzzle/Settings
KrossWordPuzzle/Using KrossWordPuzzle
KRuler
Krusader
Krusader/How To Add Folder Shortcuts on Krusader Toolbar
KsCD
KSnapshot
KSniffer
KStars
KSysGuard
KSystemLog
KTechlab
KtikZ
KTimer
KTimeTracker
KTorrent
KTouch
KTouch/HowTo/DifferentKeyboardLayout
KTurtle
KTurtle/Examples
KTux
Kubuntu
Kubuntu/Advanced
Kubuntu/Advanced/Repositories
Kubuntu/Basic
Kubuntu/Contribute
Kubuntu/Installation
Kubuntu/Software
Kubuntu/Software/Games/Steam
Kubuntu/Support
Kubuntu/Welcome
KuickShow
KUIViewer
KUser
Kwave
KWin
KWin Rules
KWin Rules Application Workarounds
KWin Rules Examples
KWin Rules Window Attributes
KWin Rules Window Matching
KWin/Gallery
Kwlan
KWord
KWord/Manual
KWord/Manual/Introduction
KWord/Manual/IntroGUI
KWord/Tutorials
KWord/Tutorials/BasicLayout
KWord/Tutorials/SecondLayout
KWord/Tutorials/ThirdLayout
KWordQuiz
KWrite
KXStitch
LabPlot
Lancelot
Lancelot/Comparison
Lancelot/Discover Lancelot
Latte Dock
LatteDock
LatteDock/FAQ
LatteDock/How to report multi screen issues
LatteDock/HowToReportCrashes
LatteDock/TipsAndTricks
LemonPOS
List of KDE themes with GTK ports
Live CDs - a way to choose your distro
Lokalize
Mailing Lists
Marble
Marble/Bookmarks
Marble/Maemo/GuidanceMode
Marble/Maemo/Installation
Marble/Maemo/OfflineRouting
Marble/MapThemes
Marble/Search
Marble/Tracking
Minuet
Modify a Page
Neon/Installation/OEM
Neon/LTS/EOL
Nepomuk
Nepomuk/FileIndexer
Nepomuk/kioslaves/tags
NetworkManagement
Off-line Translation
Okteta
Okteta/Tutorials
Okular
PageLayout
Pairs
Parley
Parley/Manual
Parley/Manual/How to study vocabulary in multiple choice mode
Peruse
Phonon
Phonon/Handbook
Plan
Plan/Engineering To Order project tutorial
Plan/Engineering To Order project tutorial/executing
Plan/Engineering To Order project tutorial/planning
Plan/Manual/Definitions
Plan/Manual/Introduction
Plan/Tutorials
Plasma
Plasma application launchers
Plasma-browser-integration
Plasma/Application Dashboard
Plasma/Clocks
Plasma/ColorPicker
Plasma/Create a Global Theme Package
Plasma/DeviceNotifier
Plasma/FAQ/4.4
Plasma/FAQ/4.4/Configuration
Plasma/FAQ/5.10
Plasma/FAQ/5.10/Configuration
Plasma/FAQ/Index
Plasma/GroupingDesktop
Plasma/HowTo/4.5
Plasma/HowTo/Index
Plasma/Installing Plasmoids
Plasma/Kicker
Plasma/Kickoff
Plasma/Krunner
Plasma/Netbooks
Plasma/NetworkMonitor
Plasma/Pager
Plasma/Panels
Plasma/PictureFrame
Plasma/Plasmoids
Plasma/Public Transport
Plasma/Public Transport/CreateServiceProviders
Plasma/Public Transport/NewServiceProviders
Plasma/Public Transport/ServiceProviders
Plasma/SystemTray
Plasma/Tasks
Plasma/TweakingPlasma
Plasmate
PulseAudio
QCA
Quanta
Quanta RefreshDoc
Quanta RefreshDoc script
Quassel
Quick Start
Raptor
Raw to DNG
Rekonq
Rekonq/FAQs
Rekonq/Manual
Rekonq/Manual/Introduction
Rekonq/Manual/UI
RKWard
Rocs
RSIBreak
Semantik
Session Environment Variables
Sheets
Showcase
Showfoto
Showfoto/Brightness
Showfoto/Curves Adjust
Showfoto/Levels Adjust
Showfoto/Perspective
Showfoto/White Balance
Simon/Installation
Simon/Shadow dictionary
Skanlite
Skrooge
Smb4K
SMPlayer
Software from Source
Sound Problems
Sound Problems/External Sound Cards
Spectacle
Spectacle/Tutorials/Invoking Spectacle with custom shortcuts
Stage
Step
Summary
Sweeper
SymbolEditor
System Activity
System Settings
System Settings/Accessibility
System Settings/Account Details
System Settings/Activities
System Settings/Appearance
System Settings/Application Style
System Settings/Applications
System Settings/Autostart
System Settings/Color
System Settings/Connections
System Settings/Date & Time
System Settings/Default Applications
System Settings/Desktop Behavior
System Settings/Desktop Effects
System Settings/Desktop Session
System Settings/Emoticon Theme
System Settings/File Associations
System Settings/File Search
System Settings/Font
System Settings/Font Management
System Settings/Fonts (Category)
System Settings/Formats
System Settings/GNOME Application Style (GTK)
System Settings/Icon Theme
System Settings/Icons
System Settings/Input Devices
System Settings/KDE Wallet
System Settings/Keyboard
System Settings/Language
System Settings/Launch Feedback
System Settings/Locale/How To Install and Apply Interface Translation
System Settings/Locations
System Settings/Login Screen
System Settings/Look And Feel
System Settings/Mouse
System Settings/Mouse Cursor Theme
System Settings/Notifications
System Settings/Online Accounts
System Settings/Plasma Search
System Settings/Plasma Theme
System Settings/Power Management
System Settings/Printers
System Settings/Regional Settings
System Settings/Removable Storage
System Settings/Screen Edges
System Settings/Screen Locking
System Settings/Search
System Settings/Search Desktop
System Settings/Shortcuts
System Settings/Shortcuts and Gestures
System Settings/Spell Check
System Settings/Splash Screen
System Settings/Startup and Shutdown
System Settings/Task Scheduler
System Settings/Task Switcher
System Settings/Touch Screen
System Settings/Touchpad
System Settings/User Manager
System Settings/Virtual Desktops
System Settings/Web Shortcuts
System Settings/Widget Style
System Settings/Window Behavior
System Settings/Window Behaviour
System Settings/Window Rules
System Settings/Windows Decorations
System Settings/Windows Management
System Settings/Workspace
System Settings/Workspace Appearance
System Settings/Workspace Behaviour
System Settings/Workspace Theme
Table of equivalent applications
Taking Screenshots
Tasks and Tools
Telepathy
Tellico
Tellico/Compiling
Tellico/Templates
Toolbox
Toolbox/Tables
Tools
Translate a Page
Translation Workflow
Trojitá
Troubleshooting
Troubleshooting/Peripherals Problems
Troubleshooting/Samsung scx-4500W
Tutorials
Tutorials/Access another computer's display
Tutorials/Change the color of the blue folder icon
Tutorials/Compose Key Old Version
Tutorials/ComposeKey
Tutorials/Flatpak
Tutorials/Force Transparency And Blur
Tutorials/hotkeys
Tutorials/Install KDE software
Tutorials/KDE3 to KDE SC 4
Tutorials/Keyboard
Tutorials/Kimpanel
Tutorials/Kontact/Office365
Tutorials/MIDI on Linux
Tutorials/Modify KDE Software Defaults
Tutorials/Mouse pointer settings for large displays
Tutorials/Open a console
Tutorials/Shared Database
Tutorials/Using Other Window Managers with Plasma
Typographical Guidelines
Umbrello
Umbrello/FAQ
Update an Image
UserBase/Guidelines
Wacomtablet
Websites
Welcome to KDE UserBase
What is a distribution
What is KDE
Words
Working with GMail
Working with Google Calendar
Working with Google Contacts
Working with MyKolab
Workspace Configuration/Desktop Configuration
Writing an Application Manual
Yakuake
Zanshin
Language
aa - Afar
ab - Abkhazian
abs - Ambonese Malay
ace - Achinese
acm - Iraqi Arabic
ady - Adyghe
ady-cyrl - Adyghe (Cyrillic script)
aeb - Tunisian Arabic
aeb-arab - Tunisian Arabic (Arabic script)
aeb-latn - Tunisian Arabic (Latin script)
af - Afrikaans
aln - Gheg Albanian
alt - Southern Altai
am - Amharic
ami - Amis
an - Aragonese
ang - Old English
ann - Obolo
anp - Angika
ar - Arabic
arc - Aramaic
arn - Mapuche
arq - Algerian Arabic
ary - Moroccan Arabic
arz - Egyptian Arabic
as - Assamese
ase - American Sign Language
ast - Asturian
atj - Atikamekw
av - Avaric
avk - Kotava
awa - Awadhi
ay - Aymara
az - Azerbaijani
azb - South Azerbaijani
ba - Bashkir
ban - Balinese
ban-bali - Balinese (Balinese script)
bar - Bavarian
bbc - Batak Toba
bbc-latn - Batak Toba (Latin script)
bcc - Southern Balochi
bci - Baoulé
bcl - Central Bikol
bdr - West Coast Bajau
be - Belarusian
be-tarask - Belarusian (Taraškievica orthography)
bew - Betawi
bg - Bulgarian
bgn - Western Balochi
bh - Bhojpuri
bho - Bhojpuri
bi - Bislama
bjn - Banjar
blk - Pa'O
bm - Bambara
bn - Bangla
bo - Tibetan
bpy - Bishnupriya
bqi - Bakhtiari
br - Breton
brh - Brahui
bs - Bosnian
btm - Batak Mandailing
bto - Iriga Bicolano
bug - Buginese
bxr - Russia Buriat
ca - Catalan
cbk-zam - Chavacano
cdo - Min Dong Chinese
ce - Chechen
ceb - Cebuano
ch - Chamorro
cho - Choctaw
chr - Cherokee
chy - Cheyenne
ckb - Central Kurdish
co - Corsican
cps - Capiznon
cpx - Pu-Xian Min
cpx-hans - Pu-Xian Min (Simplified Han script)
cpx-hant - Pu-Xian Min (Traditional Han script)
cpx-latn - Pu-Xian Min (Latin script)
cr - Cree
crh - Crimean Tatar
crh-cyrl - Crimean Tatar (Cyrillic script)
crh-latn - Crimean Tatar (Latin script)
crh-ro - Crimean Tatar (Romania)
cs - Czech
csb - Kashubian
cu - Church Slavic
cv - Chuvash
cy - Welsh
da - Danish
dag - Dagbani
de - German
de-at - Austrian German
de-ch - Swiss High German
de-formal - German (formal address)
dga - Dagaare
din - Dinka
diq - Zazaki
dsb - Lower Sorbian
dtp - Central Dusun
dty - Doteli
dv - Divehi
dz - Dzongkha
ee - Ewe
egl - Emilian
el - Greek
eml - Emiliano-Romagnolo
en - English
en-ca - Canadian English
en-gb - British English
eo - Esperanto
es - Spanish
es-419 - Latin American Spanish
es-formal - Spanish (formal address)
et - Estonian
eu - Basque
ext - Extremaduran
fa - Persian
fat - Fanti
ff - Fula
fi - Finnish
fit - Tornedalen Finnish
fj - Fijian
fo - Faroese
fon - Fon
fr - French
frc - Cajun French
frp - Arpitan
frr - Northern Frisian
fur - Friulian
fy - Western Frisian
ga - Irish
gaa - Ga
gag - Gagauz
gan - Gan Chinese
gan-hans - Gan (Simplified)
gan-hant - Gan (Traditional)
gcr - Guianan Creole
gd - Scottish Gaelic
gl - Galician
gld - Nanai
glk - Gilaki
gn - Guarani
gom - Goan Konkani
gom-deva - Goan Konkani (Devanagari script)
gom-latn - Goan Konkani (Latin script)
gor - Gorontalo
got - Gothic
gpe - Ghanaian Pidgin
grc - Ancient Greek
gsw - Alemannic
gu - Gujarati
guc - Wayuu
gur - Frafra
guw - Gun
gv - Manx
ha - Hausa
hak - Hakka Chinese
haw - Hawaiian
he - Hebrew
hi - Hindi
hif - Fiji Hindi
hif-latn - Fiji Hindi (Latin script)
hil - Hiligaynon
hno - Northern Hindko
ho - Hiri Motu
hr - Croatian
hrx - Hunsrik
hsb - Upper Sorbian
hsn - Xiang Chinese
ht - Haitian Creole
hu - Hungarian
hu-formal - Hungarian (formal address)
hy - Armenian
hyw - Western Armenian
hz - Herero
ia - Interlingua
id - Indonesian
ie - Interlingue
ig - Igbo
igl - Igala
ii - Sichuan Yi
ik - Inupiaq
ike-cans - Eastern Canadian (Aboriginal syllabics)
ike-latn - Eastern Canadian (Latin script)
ilo - Iloko
inh - Ingush
io - Ido
is - Icelandic
it - Italian
iu - Inuktitut
ja - Japanese
jam - Jamaican Creole English
jbo - Lojban
jut - Jutish
jv - Javanese
ka - Georgian
kaa - Kara-Kalpak
kab - Kabyle
kai - Karekare
kbd - Kabardian
kbd-cyrl - Kabardian (Cyrillic script)
kbp - Kabiye
kcg - Tyap
kea - Kabuverdianu
kg - Kongo
khw - Khowar
ki - Kikuyu
kiu - Kirmanjki
kj - Kuanyama
kjh - Khakas
kjp - Eastern Pwo
kk - Kazakh
kk-arab - Kazakh (Arabic script)
kk-cn - Kazakh (China)
kk-cyrl - Kazakh (Cyrillic script)
kk-kz - Kazakh (Kazakhstan)
kk-latn - Kazakh (Latin script)
kk-tr - Kazakh (Turkey)
kl - Kalaallisut
km - Khmer
kn - Kannada
ko - Korean
ko-kp - Korean (North Korea)
koi - Komi-Permyak
kr - Kanuri
krc - Karachay-Balkar
kri - Krio
krj - Kinaray-a
krl - Karelian
ks - Kashmiri
ks-arab - Kashmiri (Arabic script)
ks-deva - Kashmiri (Devanagari script)
ksh - Colognian
ksw - S'gaw Karen
ku - Kurdish
ku-arab - Kurdish (Arabic script)
ku-latn - Kurdish (Latin script)
kum - Kumyk
kus - Kʋsaal
kv - Komi
kw - Cornish
ky - Kyrgyz
la - Latin
lad - Ladino
lb - Luxembourgish
lbe - Lak
lez - Lezghian
lfn - Lingua Franca Nova
lg - Ganda
li - Limburgish
lij - Ligurian
liv - Livonian
lki - Laki
lld - Ladin
lmo - Lombard
ln - Lingala
lo - Lao
loz - Lozi
lrc - Northern Luri
lt - Lithuanian
ltg - Latgalian
lus - Mizo
luz - Southern Luri
lv - Latvian
lzh - Literary Chinese
lzz - Laz
mad - Madurese
mag - Magahi
mai - Maithili
map-bms - Basa Banyumasan
mdf - Moksha
mg - Malagasy
mh - Marshallese
mhr - Eastern Mari
mi - Māori
min - Minangkabau
mk - Macedonian
ml - Malayalam
mn - Mongolian
mnc - Manchu
mnc-latn - Manchu (Latin script)
mnc-mong - Manchu (Mongolian script)
mni - Manipuri
mnw - Mon
mo - Moldovan
mos - Mossi
mr - Marathi
mrh - Mara
mrj - Western Mari
ms - Malay
ms-arab - Malay (Jawi script)
mt - Maltese
mus - Muscogee
mwl - Mirandese
my - Burmese
myv - Erzya
mzn - Mazanderani
na - Nauru
nah - Nāhuatl
nan - Min Nan Chinese
nap - Neapolitan
nb - Norwegian Bokmål
nds - Low German
nds-nl - Low Saxon
ne - Nepali
new - Newari
ng - Ndonga
nia - Nias
niu - Niuean
nl - Dutch
nl-informal - Dutch (informal address)
nmz - Nawdm
nn - Norwegian Nynorsk
no - Norwegian
nod - Northern Thai
nog - Nogai
nov - Novial
nqo - N’Ko
nrm - Norman
nso - Northern Sotho
nv - Navajo
ny - Nyanja
nyn - Nyankole
nys - Nyungar
oc - Occitan
ojb - Northwestern Ojibwa
olo - Livvi-Karelian
om - Oromo
or - Odia
os - Ossetic
pa - Punjabi
pag - Pangasinan
pam - Pampanga
pap - Papiamento
pcd - Picard
pcm - Nigerian Pidgin
pdc - Pennsylvania German
pdt - Plautdietsch
pfl - Palatine German
pi - Pali
pih - Norfuk / Pitkern
pl - Polish
pms - Piedmontese
pnb - Western Punjabi
pnt - Pontic
prg - Prussian
ps - Pashto
pt - Portuguese
pt-br - Brazilian Portuguese
pwn - Paiwan
qqq - Message documentation
qu - Quechua
qug - Chimborazo Highland Quichua
rgn - Romagnol
rif - Riffian
rki - Arakanese
rm - Romansh
rmc - Carpathian Romani
rmy - Vlax Romani
rn - Rundi
ro - Romanian
roa-tara - Tarantino
rsk - Pannonian Rusyn
ru - Russian
rue - Rusyn
rup - Aromanian
ruq - Megleno-Romanian
ruq-cyrl - Megleno-Romanian (Cyrillic script)
ruq-latn - Megleno-Romanian (Latin script)
rw - Kinyarwanda
ryu - Okinawan
sa - Sanskrit
sah - Yakut
sat - Santali
sc - Sardinian
scn - Sicilian
sco - Scots
sd - Sindhi
sdc - Sassarese Sardinian
sdh - Southern Kurdish
se - Northern Sami
se-fi - Northern Sami (Finland)
se-no - Northern Sami (Norway)
se-se - Northern Sami (Sweden)
sei - Seri
ses - Koyraboro Senni
sg - Sango
sgs - Samogitian
sh - Serbo-Croatian
sh-cyrl - Serbo-Croatian (Cyrillic script)
sh-latn - Serbo-Croatian (Latin script)
shi - Tachelhit
shi-latn - Tachelhit (Latin script)
shi-tfng - Tachelhit (Tifinagh script)
shn - Shan
shy - Shawiya
shy-latn - Shawiya (Latin script)
si - Sinhala
simple - Simple English
sjd - Kildin Sami
sje - Pite Sami
sk - Slovak
skr - Saraiki
skr-arab - Saraiki (Arabic script)
sl - Slovenian
sli - Lower Silesian
sm - Samoan
sma - Southern Sami
smn - Inari Sami
sms - Skolt Sami
sn - Shona
so - Somali
sq - Albanian
sr - Serbian
sr-ec - српски (ћирилица)
sr-el - srpski (latinica)
srn - Sranan Tongo
sro - Campidanese Sardinian
ss - Swati
st - Southern Sotho
stq - Saterland Frisian
sty - Siberian Tatar
su - Sundanese
sv - Swedish
sw - Swahili
syl - Sylheti
szl - Silesian
szy - Sakizaya
ta - Tamil
tay - Tayal
tcy - Tulu
tdd - Tai Nuea
te - Telugu
tet - Tetum
tg - Tajik
tg-cyrl - Tajik (Cyrillic script)
tg-latn - Tajik (Latin script)
th - Thai
ti - Tigrinya
tk - Turkmen
tl - Tagalog
tly - Talysh
tly-cyrl - Talysh (Cyrillic script)
tn - Tswana
to - Tongan
tok - Toki Pona
tpi - Tok Pisin
tr - Turkish
tru - Turoyo
trv - Taroko
ts - Tsonga
tt - Tatar
tt-cyrl - Tatar (Cyrillic script)
tt-latn - Tatar (Latin script)
tum - Tumbuka
tw - Twi
ty - Tahitian
tyv - Tuvinian
tzm - Central Atlas Tamazight
udm - Udmurt
ug - Uyghur
ug-arab - Uyghur (Arabic script)
ug-latn - Uyghur (Latin script)
uk - Ukrainian
ur - Urdu
uz - Uzbek
uz-cyrl - Uzbek (Cyrillic script)
uz-latn - Uzbek (Latin script)
ve - Venda
vec - Venetian
vep - Veps
vi - Vietnamese
vls - West Flemish
vmf - Main-Franconian
vmw - Makhuwa
vo - Volapük
vot - Votic
vro - Võro
wa - Walloon
wal - Wolaytta
war - Waray
wls - Wallisian
wo - Wolof
wuu - Wu Chinese
wuu-hans - Wu Chinese (Simplified)
wuu-hant - Wu Chinese (Traditional)
xal - Kalmyk
xh - Xhosa
xmf - Mingrelian
xsy - Saisiyat
yi - Yiddish
yo - Yoruba
yrl - Nheengatu
yue - Cantonese
yue-hans - Cantonese (Simplified)
yue-hant - Cantonese (Traditional)
za - Zhuang
zea - Zeelandic
zgh - Standard Moroccan Tamazight
zh - Chinese
zh-cn - Chinese (China)
zh-hans - Simplified Chinese
zh-hant - Traditional Chinese
zh-hk - Chinese (Hong Kong)
zh-mo - Chinese (Macau)
zh-my - Chinese (Malaysia)
zh-sg - Chinese (Singapore)
zh-tw - Chinese (Taiwan)
zu - Zulu
Format
Export for off-line translation
Export in native format
Export in CSV format
Fetch
{{DISPLAYTITLE:KDevelop5/Підручник/Робота з кодом програм}}<languages /> {{Construction}} == Робота з кодом програм == Окрім зневаджування, читання та написання коду є найважливішими завданнями під час розробки програмного забезпечення. З метою полегшення навігації кодом та його написання у '''KDevelop''' передбачено багато різних інструментів. Як буде докладніше показано у наступних розділах, '''KDevelop''' не просто редактор коду, — це скоріше система керування кодом, яка може подавати різні дані, отримані на основі аналізу загальної сукупності коду всього вашого сеансу роботи. <span id="Tools and views"></span> <span id="Tools_and_views"></span> === Інструменти та панелі перегляду === [[Image:Kedevelop_split_windows.png|thumb|500px|center]] Для роботи з проектами у '''KDevelop''' передбачено ''інструменти''. Інструмент надає певні дані щодо коду або виконує з ним певну дію. Інструментам відповідають кнопки вздовж периметра вікна програми (з вертикальним текстом на полях ліворуч і праворуч та горизонтальним вздовж нижнього поля). Якщо ви натиснете таку кнопку, у головному вікні буде відкрито підвікно — ''панель перегляду''; якщо кнопку буде натиснуто ще раз, відповідне підвікно буде закрито. {{Note_(uk)|1=Щоб закрити підлегле вікно, ви можете просто натиснути кнопку зі значком <menuchoice>x</menuchoice> у верхньому правому куті (або у верхньому лівому куті для інструментів на нижньому полі) цього допоміжного вікна.}} На наведеному вище зображенні ви можете бачити певний набір інструментів, вирівняних за лівим і правим полем. Ліворуч відкрито панель інструмента <menuchoice>Класи</menuchoice>, праворуч — <menuchoice>Фрагменти</menuchoice>. Посередині можна бачити панель редактора. З практичних міркувань, переважну частину часу розробки варто працювати лише з редактором та панеллю <menuchoice>Класи</menuchoice> чи <menuchoice>Перегляд коду</menuchoice>, відкритою ліворуч. На час використання певного інструмента можна відкрити його панель, яку після використання варто закрити з метою збільшення простору для панелі редактора. Після першого запуску '''KDevelop''' ви вже зможете скористатися кнопкою інструмента <menuchoice>Проєкти</menuchoice>. Натисніть цю кнопку: у відповідь буде відкрито панель зі списком проєктів, які було додано до сеансу у нижній частині вікна та панель перегляду файлової системи вашого проєкту у верхній його частині. У '''KDevelop''' ви можете скористатися багатьма [[Special:myLanguage/KDevelop5/Manual/Tool_list|іншими інструментами]], не всі з них представлено кнопками вздовж периметра вікна у початковому стані. Щоб додати кнопку, скористайтеся пунктом меню <menuchoice>Вікна -> Додати панель інструмента</menuchoice>. У результаті буде відкрито вікно для вибору бажаної панелі. У контекстному вікні ви зможете натискати кнопки ліворуч, вниз, праворуч для пересування панелей і вибору місця розташування панелей. Ось перелік можливих корисних інструментів: * '''Класи''': повний список всіх класів, які визначено у одному з проектів або у вашому сеансі з усіма вбудованими функціями та змінними. Натискання пункту елемента класу відкриє вікно редактора з місцем оголошення елемента, пункт якого було натиснуто. * '''Документи''': тут буде показано список поточних відкритих у редакторі файлів. * '''Перегляд коду''': залежно від розташування курсора у редакторі файла, на цій панелі буде показано пов’язані з кодом дані. Наприклад, якщо курсор перебуває у рядку з <code>#include</code>, на панелі буде показано дані щодо файла, який включено до коду, зокрема дані щодо оголошених у файлі класів. Якщо курсор перебуває на порожньому рядку у файлі, на панелі буде показано класи і функції, оголошені і визначені у поточному файлі (всі як посилання: натискання відповідного пункту відкриватиме файл з оголошенням або визначенням класу чи функції). Якщо курсор перебуває на визначенні функції, на панелі буде показано місце оголошення та список місць, у яких використано функцію. * '''Файлова система''': показує ієрархічну структуру файлової системи. * '''Документація''': надає вам змогу виконувати пошук даних на сторінках довідника (man) та у інших довідкових документах, зокрема документації до C++, Qt, PHP тощо. * '''Фрагменти''': на цій панелі буде наведено фрагменти тексту, які використовують вами регулярно, і які ви не хочете повторно вводити кожного разу. У прикладі, на основі якого було створено знімок екрана, була потреба часто використовувати фрагмент коду <syntaxhighlight lang="cpp" line>if(vcs->isVersionControlled(source)) { VcsJob* job=vcs->copy(source, target); if(job) { return job->exec(); </syntaxhighlight>Цей вираз завжди використовуватиметься у такій формі кожного разу — чудовий кандидат на включення до списку фрагментів. * '''Konsole''': відкриває панель командного рядка у головному вікні '''KDevelop''', щоб ви могли віддати потрібну вам команду оболонки (наприклад, виконати <code>./configure</code>). Для багатьох програмістів найважливішою є економія вертикального місця на екрані. Щоб досягти такої економії, ви можете розташувати панелі інструментів вздовж лівої та правої межі вікна програми. Щоб пересунути панель, клацніть на заголовку правою кнопкою миші і виберіть нове її розташування. <span id="Exploring source code"></span> <span id="Exploring_source_code"></span> === Огляд роботи з кодом === <span id="Local_information"></span> ==== Локальні дані ==== '''KDevelop''' ''розуміє'' код програми, тому це середовище може надавати вам дані щодо змінних або функцій вашої програми. Наприклад, у цьому підручнику наведено знімок роботи з фрагментом коду, де вказівник миші наведено на символ <code>cell</code> у рядку 1316 (якщо ви надаєте перевагу роботі за допомогою клавіатури, того самого ефекту можна досягти утримуванням певний час натиснутою клавіші <keycap>Alt</keycap>): [[Image:Kdevelop-variable-doc-tooltip.png|625px|thumb|center]] '''KDevelop''' показує підказку, зокрема тип змінної (тут: <code>container</code>), де цю змінну оголошено (''контейнер'', яким тут є функція-обгортка <code>operator()(AreaIndex *index)</code>, оскільки це локальна змінна), тип даних (змінна, не функція, клас або простір назв) та місце оголошення (у рядку 376, декількома рядками коду вище). У поточному контексті з символом, на який наведено вказівник миші, не пов’язано жодної документації. У нашому прикладі, де вказівник миші наведено на символ <code>Container</code> у рядку 376, буде показано такі дані: [[Image:Kdevelop-class-doc-tooltip.png|625 px|thumb|center]] Тут '''KDevelop''' показано оголошення зі стороннього файла (<code>container.h</code>, який є частиною зовсім іншого проекту того самого сеансу) разом з коментарем у форматі doxygen, який супроводжує цей оголошення. Кориснішими ці підказки робить те, що вони є динамічними: ви можете клацнути на пункті контейнера, щоб отримати відомості щодо контексту, у якому оголошено змінну (тобто щодо простору назв <code>Sublime</code>, зокрема того, де її оголошено, визначено, використано або якою є її документація), і ви можете клацнути на розфарбованих у синє посилань для перенесення позиції курсора до місця оголошення символу (наприклад, у <code>container.h</code>, рядок 40) або отримання списку місць, де цей символ використано у поточному файлі або в усіх проєктах поточного сеансу. Останній варіант часто корисним, якщо ви хочете вивчити те, як, наприклад, певну функцію використано у великій кодовій базі. {{Note_(uk)|1=Панель підказки з часом зникатиме: щоб її знову відкрити доведеться знов утримувати натиснутою клавішу <keycap>Alt</keycap> або наводити вказівник миші на фрагменти коду. Якщо вам потрібно зафіксувати дані з цієї панелі, відкрийте панель інструмента <menuchoice>Перегляд коду</menuchoice>. У нашому прикладі курсор перебуває у тій самій функції, що і раніше, а на панелі інструмента ліворуч показано той самий набір даних, що і на панелі підказки раніше:<!--}}--> [[Image:Kdevelop-code-browser-code-editor-nom.png|500px|thumb|center]] <!--{{-->Пересування курсора у правій частині вікна призводитиме до зміни даних у його лівій частині. Натискання кнопки <menuchoice>Заблокувати поточний перегляд</menuchoice> у верхній правій частині надасть вам змогу зафіксувати дані, убезпечивши їх від зміни розташування курсора на час перегляду.}} {{Note_(uk)|1=Доступ до контекстних даних такого типу можна отримати з багатьох частин '''KDevelop''', не лише з панелі редактора коду. Наприклад, утримування натиснутою клавіші <keycap>Alt</keycap> у списку автоматичного доповнення (наприклад, під час пришвидшеного відкриття якогось файла) також призводитиме до показу контекстних даних щодо поточного рядка.}} <span id="File_scope_information"></span> ==== Дані щодо окремих файлів ==== Наступним рівнем є отримання даних щодо всього файла коду, над яким ви працюєте. Щоб переглянути її, розташуйте курсор на початку поточного файла і подивіться на дані, які буде показано на панелі інструмента '''Перегляд коду''': [[Image:Kdevelop-code-browser-info.png|625px|thumb|center]] Тут середовищем показано список просторів назв, класів та функцій, оголошених або визначених у поточному файлі. За допомогою цього списку ви можете ознайомитися з загальними даними щодо дій, які виконуються у файлі, та безпосередньо перейти до будь-якого з оголошень або визначень без потреби у гортанні коду файла або пошуку певного фрагмента. <span id="Project_and_session_scope_information"></span> ==== Дані щодо проектів та сеансів ==== Існує багато способів отримати загальні дані щодо проекту (або, фактично, всіх проектів сеансу). Такі дані, зазвичай, можна знайти на панелях перегляду різноманітних інструментів середовища. Наприклад, на панелі інструмента <menuchoice>Класи</menuchoice> показано ієрархічну структуру всіх класів і зовнішніх просторів назв для всіх проектів сеансу, разом з вбудованими функціями та змінними кожного з цих класів: [[Image:Kdevelop-class-browser-tooltip.png|625px|thumb|center]] Знову ж таки, за допомогою наведення вказівника миші на запис у списку можна отримати дані щодо відповідного символу, розташування його оголошення та визначення і випадків використання. Подвійним клацанням на пункті цього ієрархічного списку можна відкрити вікно редактора на позиції, де оголошено або визначено символ. Але існують інші способи вивчення загальних відомостей. Наприклад, інструмент <menuchoice>Документи</menuchoice> надає панель перегляду документів, які відкрито, і надає можливість вибору одного з документів для перегляду і безпроблемного пересування від одного документа до іншого: [[Image:Kdevelop-document-view.png|625px|thumb|center]] Ви також можете вибрати пункт із маленькою коробкою із чотирма кубиками у верхньому правому куті, щоб отримати список відкритих файлів, який має назву ''робочий набір''. Кожен рядок починається з поля для позначки, позначення якого вилучає файл з робочого списку. Також буде показано кнопку у правій частині, натискання якої надає вам змогу виконати записування до реєстру git. Корисно, якщо вам потрібно перейти до іншої гілки або до повністю іншого проєкту. [[Image:Kdevelop-upper-right-corner.png|400px|thumb|center]] <span id="Rainbow_color_highlighting_explained"></span> ==== Пояснення щодо розфарбовування коду ==== '''KDevelop''' використовує різноманітні кольори для підсвічування різних об'єктів у початковому коді. Якщо ви знаєте призначення різних кольорів, ви можете швидко отримати багато інформації з початкового коду простим його переглядом (за кольорами) навіть не читаючи сам код. Правила підсвічування такі: * Для об'єктів типів Class / Struct, Enum (значень і типу), (загальних) функцій і членів класу визначено власні кольори (класи — зелені, переліки — темно-червоні, а учасники — темно-жовті або фіолетові, (загальні) функції — завжди фіолетові). * Усі загальні змінні буде розфарбовано у темно-зелений. * Ідентифікатори, які є визначеннями типів для інших типів буде розфарбовано у синьо-зелений колір. * Усі оголошення та визначення об'єктів буде показано напівжирним шрифтом. * Якщо доступ до учасника класу отримується з контексту, де його визначено (базового або похідного класу), його буде показано жовтим. Якщо ж це не так, його буде показано фіолетовим. * Якщо член класу є приватним (private) або захищеним (protected), його буде розфарбовано у дещо темніший колір при використанні. * Для змінних, які є локальними для області видимості функції, використовуються кольори веселки, які програма вибирає за хешем ідентифікатора. Це стосується і параметрів функції. Ідентифікатор матиме той самий колір у її області видимості (але той самий ідентифікатор матиме інший колір, якщо відповідає іншому об'єкту, тобто його перевизначено у вкладенішій області видимості). Зазвичай, для ідентифікатора із тією самою назвою у різних областях видимості буде використано той самий колір. Отже, якщо параметри із однаковими назвами приймають декілька функцій, кольори аргументів будуть однаковими. Розфарбовування у кольори веселки можна вимкнути окремо на рівні сторінки налаштовування загального розфарбовування у діалоговому вікні параметрів програми. * Ідентифікатори, для яких '''KDevelop''' не вдалося визначити відповідне оголошення, буде розфарбовано білим кольором. Іноді причиною такого розфарбовування є пропущені директиви <code>#include</code>. * На додачу до цього розфарбовування буде застосовано звичайне розфарбовування синтаксичних конструкцій редактора, які відомі з '''Kate'''. Семантичне підсвічування у '''KDevelop''' завжди перевизначає підсвічування редактора, якщо виникне конфлікт. <span id="Navigating in source code"></span> <span id="Navigating_in_source_code"></span> === Пересування між фрагментами коду === У попередньому розділі ми обговорювали вивчення коду програми, тобто отримання даних щодо символів, файлів та проектів. Наступним кроком є перехід між компонентами коду, тобто навігація кодом. Знову ж таки, існує декілька рівнів, на яких можна здійснювати подібну навігацію: локально, у межах файла і у межах проекту. {{Note_(uk)|1=Доступ до багатьох засобів навігації можна отримати за допомогою меню <menuchoice>Навігація</menuchoice> головного вікна '''KDevelop'''.}} <span id="Local_navigation"></span> ==== Пересування поточним фрагментом ==== '''KDevelop''' — набагато більше, ніж просто редактор, — це ''також'' редактор коду. Тому, звичайно ж, ви можете пересувати курсор текстом за допомогою звичайних клавіш зі стрілочками. Ви також можете скористатися натисканням клавіш <keycap>PageUp</keycap> та <keycap>PageDown</keycap> і всіма іншими командами, якими можна скористатися у звичайному текстовому редакторі. <span id="File_scope_navigation_and_outline_mode"></span> ==== Пересування файлами та режим огляду ==== На рівні окремого файла у '''KDevelop''' передбачено багато способів навігації кодом програми. Приклад: * '''Схема''': ви можете переглянути схему вмісту поточного файла в один із принаймні трьох різних способів: ** Натисканням кнопки <menuchoice>Outline</menuchoice> ''Панелі інструментів'', яку, зазвичай, розташовано у лівій частині вікна.[[Image:Kdevelop-outline1.png|625px|thumb|center]]Передбачено кнопку для упорядковування усього за зростанням або спаданням та панель фільтрування. Далі, ви можете просто вибрати пункт, до якого слід перейти, або, якщо пунктів багато, почати вводити критерій пошуку, щоб у списку лишилися потрібні вам записи. Зі зростанням кількості символів у введеному критерії, список ставатиме усе меншим, оскільки з нього зникатимуть усі назви, які не містять введеного вами тексту, аж доки ви не будете готові вибрати один з варіантів, що лишився у списку. ** Комбінацією клавіш <keycap>Alt + Ctrl + N</keycap> можна відкрити діалогове вікно зі списком усіх оголошень функцій та класів.[[Image:Kdevelop-outline2.png|625px|thumb|center]]Там також буде наведено опис того, що відбувається у поточному файлі. Крім того, у цьому діалоговому вікні ви зможете виконати пошук, якщо список є надто довгим, та вибрати оголошення для переходу до нього. ** На панелі інструментів вікна навігації кодом передбачено смужку редагування тексту, до якої ви можете ввести назву функції або класу для швидкого пошуку. Можна просто клацнути на смужці редагування, щоб побачити схему. Якщо клацнути на пункті у контекстному списку, програма покаже підказку щодо пункту і посилання на його визначення та використання.[[File:Kdevelop-outline4.png|400px|thumb|center]] * Файли коду впорядковано у список оголошень та визначень. За допомогою натискання комбінацій клавіш <keycap>Alt + Ctrl + PgUp</keycap> і <keycap>Alt + Ctrl + PgDown</keycap> можна переходити до визначення попередньої або наступної функції у файлі. <span id="Project_and_session_scope_navigation:_Semantic_navigation"></span> ==== Пересування проектами та сеансами: семантичне пересування ==== Як ми вже згадували у інших частинах підручника, '''KDevelop''', зазвичай, не працює із окремими файлами початкових кодів, а розглядає проєкти програмного забезпечення уцілому (або, точніше, розглядає як ціле усі проєкти, які є частиною поточного сеансу). Наслідком цього є те, що програма пропонує багато можливостей для навігації усіма проєктами. Деякі з цих можливостей є похідними від тих, які вже було обговорено у розділі щодо [[Special:myLanguage/KDevelop5/Manual/Working with source code#Exploring source code|вивчення початкового коду]], інші ж є цілком відмінними. Загальним є те, що ці можливості з навігації засновано на ''семантичному розумінні'' коду, тобто вони пропонують вам щось, що потребує обробки коду усіх проєктів і поєднання даних. У наведеному нижче списку описано деякі способи для навігації початковим кодом, який розкидано між потенційно великою кількістю файлів: * Як зазначалося у розділі щодо [[Special:myLanguage/KDevelop5/Manual/Working with source code#Exploring source code|огляду початкового коду]], програма може показувати панель підказки із поясненнями щодо простору назв, класу, функції або назв змінних у відповідь на наведення на його пункт вказівника миші або утримання протягом певного часу натиснутою клавіші <keycap>Alt</keycap>. Ось приклад: [[Image:kdevelop-class-doc-tooltip.png|thumb|525px|center]] Клацання на посиланнях оголошення символу або розгортання списку використань надає вам змогу переходити до відповідних місць коду. Якщо потрібно, буде відкрито відповідний файл, і курсор буде переміщено до відповідного місця. Такого самого результату можна досягти використанням панелі '''Навігація кодом''', яку ми описували раніше. * '''Швидко відкрити''': дуже потужний спосіб переходу до інших файлів або місць, який використовується для різноманітних способів ''швидкого відкриття'' у '''KDevelop'''. Передбачено чотири версії цих способів: ** '''Швидко відкрити клас''' (<menuchoice>Навігація -> Швидко відкрити клас</menuchoice> або <keycap>Alt + Ctrl + C</keycap>): ви отримаєте список усіх класів у цьому сеансі. Почніть вводити (частину) назви класу, і у список скорочуватиметься до лише тих класів, у назвах яких міститься введений фрагмент тексту. Коли список стане достатньо коротким, виберіть у ньому запис за допомогою клавіш із стрілками вгору і вниз, і '''KDevelop''' перенесе вас до місця, де оголошено клас. ** '''Швидко відкрити функцію''' (<menuchoice>Навігація -> Швидко відкрити функцію</menuchoice> або <keycap>Alt + Ctrl + M</keycap>): ви отримаєте список усіх функцій (членів класів), які є частиною проєктів у поточному сеансі, і зможете вибрати потрібний запис у списку у спосіб, який описано вище. Зауважте, що до цього списку може бути включено і оголошення і визначення функцій. ** '''Швидко відкрити файл''' (<menuchoice>Навігація -> Швидко відкрити файл</menuchoice> або <keycap>Alt + Ctrl + O</keycap>): ви отримаєте список усіх файлів, які є частиною проєктів поточного сеансу і зможете вибрати з нього пункт у спосіб, який описано вище. ** '''Універсальне швидке відкриття''' (<menuchoice>Навігація -> Швидко відкрити</menuchoice> або <keycap>Alt + Ctrl + Q</keycap>): якщо ви не пам'ятаєте, яку з комбінацій клавіш пов'язано із описаними вище командами, можете скористатися цим універсальним засобом — він просто покаже вам комбінований список усіх файлів, функцій, класів та інших записів, з яких ви можете вибрати потрібний. * '''Перейти до оголошення/визначення''': при реалізації функції (члена класу) часто виникає потреба у зворотному переході до місця оголошення функції, наприклад, для підтримання синхронізації списку аргументів функції між оголошенням та визначенням або оновлення документації. Для здійснення подібних переходів розташуйте курсор на назві функції і виберіть пункт меню <menuchoice>Навігація -> Перейти до оголошення</menuchoice> (або натисніть комбінацію клавіш <keycap>Ctrl + .</keycap>), щоб перейти до місця оголошення функції. Існує декілька способів повернутися до початкового місця: ** Вибір пункту меню <menuchoice>Навігація -> Перейти до визначення</menuchoice> (або натискання комбінації клавіш <keycap>Ctrl + ,</keycap>). ** Вибір пункту меню <menuchoice>Навігація -> Попередній відвіданий контекст</menuchoice> (або натисніть комбінацію клавіш <keycap>Meta + ←</keycap>), як це описано нижче. {{Note_(uk)|1=Перехід до оголошення символу не обмежується лише функціями, які ви реалізуєте. Цей спосіб працює і у разі розташування курсора на назві (локальної, загальної чи вбудованої) змінної: вибір відповідного пункту меню призведе до пересування області перегляду до оголошення символу. Отже ви можете, наприклад, розташувати курсор на назві класу у оголошенні змінної функції і перейти до оголошення цього класу.}} * '''Перемкнути визначення/оголошення''': у наведеному вище прикладі для переходу до місця оголошення поточної функції нам потрібно було спочатку розташувати курсор на назві функції. Якщо вам не хочеться цього робити, скористайтеся пунктом меню <menuchoice>Навігація -> Перемкнути визначення/оголошення</menuchoice> (або натисніть комбінацію клавіш <keycap>Shift + Ctrl + C</keycap>), щоб перейти до оголошення функції, у якій перебуває курсор. Повторний вибір цього пункту меню поверне курсор назад до визначення функції. * '''Попереднє/Наступне використання''': якщо ви розташуєте курсор на назві локальної змінної і виберете пункт меню <menuchoice>Навігація -> Наступне використання</menuchoice> (або натиснете комбінацію клавіш <keycap>Meta + Shift + →</keycap>), програма перенесе вас до наступного використання цієї змінної у коді. (Зауважте, що при цьому не виконуватиметься простий пошук назви змінної, але враховуватиметься те, що змінні із тією самою назвою назвою, але у різних областях видимості є різними.) Те саме працює і для використань назв функцій. Вибір пункту меню <menuchoice>Навігація -> Попереднє використання</menuchoice> (або натискання комбінації клавіш <keycap>Meta + Shift + ←</keycap>) призведе до переходу до попереднього використання символу. {{Note_(uk)|1=Щоб переглянути список всіх використань назв, якими здійснюватиметься циклічний перехід внаслідок використання цієї команди, розташуйте курсор на назві символу і відкрийте панель <menuchoice>Перегляд коду</menuchoice> або натисніть і утримуйте клавішу <keycap>Alt</keycap>. Докладніше про використання цього прийому можна дізнатися з розділу щодо [[Special:myLanguage/KDevelop4/Manual/Working_with_source_code#File_scope_information|навігації кодом]].}} * '''Список контекстів''': у браузерах є можливість переходити назад і вперед списком нещодавно відвіданих сторінок. У '''KDevelop''' реалізовано подібні можливості, але замість переходу між сторінками ви переходите між ''контекстами''. Контекстом є поточне місце курсора. Ви можете змінити його переходом у будь-який спосіб, окрім команд пересування курсора, наприклад, клацанням на пункті місця на панелі підказки, на панелі інструментів <menuchoice>Навігація кодом</menuchoice>, на одному з пунктів у меню <menuchoice>Навігація</menuchoice> або використанням будь-якої іншої команди навігації. За допомогою пунктів меню <menuchoice>Навігація -> Попередній відвіданий контекст</menuchoice> (<keycap>Meta + ←</keycap>) і <menuchoice>Навігація -> Наступний відвіданий контекст</menuchoice> (<keycap>Meta + →</keycap>) ви можете переходити між пунктами у списку відвіданих контекстів так, як ви переходите між сторінками за допомогою кнопок <menuchoice>назад</menuchoice> і <menuchoice>вперед</menuchoice> у списку відвіданих сторінок у браузері. Крім того, ви можете скористатися панеллю інструментів браузера, де можна натиснути кнопку зі стрілкою ліворуч для переходу назад до попереднього файла і номера рядка, або натиснути кнопку зі стрілкою вниз, яка відкриває контекстний список попередніх відвіданих файлів та рядків.[[Image:Kdevelop-context-history.png|525px|thumb|center]] * Нарешті, передбачено панелі інструментів, за допомогою яких ви можете переходити до різних місць у програмному коді. Наприклад, на панелі '''Класи''' буде наведено список усіх просторів назв та класів в усіх проєктах поточного сеансу. У списку ви можете розгортати записи для перегляду функцій та змінних-членів кожного з цих класів: [[Image:Kdevelop-classes-view.png|525px|thumb|center]] Подвійним клацанням на записі (або використанням відповідного запису контекстного меню, яке можна викликати клацанням правою кнопкою миші) ви можете перейти до місця оголошення запису. Інші засоби надають змогу виконувати подібні ж речі. Наприклад, на панелі <menuchoice>Проєкти</menuchoice> буде показано писок файлів, які є частиною сеансу: [[Image:kdevelop-class-doc-tooltip.png|thumb|525px|center]]Знову ж таки, подвійне клацання на пункті файла призведе до його відкриття. <span id="Writing source code"></span> <span id="Writing_source_code"></span> === Введення коду === Оскільки '''KDevelop''' «розуміє» код ваших проектів, це середовище може допомогти вам у написанні коду. Нижче наведено огляд деяких з цих допоміжних можливостей. <span id="Auto-completion"></span> ==== Автозавершення ==== Ймовірно, найкориснішою можливістю є можливість з автоматичного завершення фрагментів коду. Розглянемо, наприклад, такий фрагмент коду: <!--}}--><syntaxhighlight lang="cpp" line> class Car { // ... public: std::string get_color () const; }; void foo() { Car my_ride; // ...do something with this variable... std::string color = my_ride.ge </syntaxhighlight><!--{--> У останньому рядку '''KDevelop''' запам’ятає, що змінна <code>my_ride</code> належить до типу <code>Car</code> і буде автоматично пропонувати доповнення назви вбудованої функції <code>ge</code> у форматі <code>get_color</code>. Фактично, вам достатньо вводити назву, аж доки список знайдених відповідників не починатиметься з потрібного вам виразу, а потім натиснути клавішу <keycap>Enter</keycap>: [[Image:Kdevelop-get-color1.png|500px|thumb|center]] Зауважте, що ви можете клацнути на панелі підказки, щоб отримати більше даних щодо функції, окрім типу даних, які вона повертає, і те, чи є ця функція відкритою (public): [[File:Kdevelop-get-color2.png|500px|thumb|center]] Автодоповнення може заощадити вам багато часу на введення тексту, якщо у вашому проєкті використовується багато довгих назв змінних та функцій. Крім того, так можна уникнути друкарських помилок у назвах (та помилок при компіляції, які є результатом таких помилок) і значно спростити запам'ятовування точних назв функцій. Наприклад, якщо усі назви функцій-отримувачів починаються із <code>get_</code>, можливість автодоповнення зможе показати список усіх можливих отримувачів, ввівши лише перші чотири літери, ймовірно, нагадавши вам, яку з функцій слід використати. Зауважте, що для забезпечення працездатності автодоповнення, ні оголошення класу <code>Car</code>, ні оголошення змінної <code>my_ride</code> не обов'язково мають зберігатися у тому самому файлі, у якому ви зараз пишете код. '''KDevelop''' достатньо значти, що ці класи і змінні поєднано, тобто файли, у яких виконано поєднання, мають бути частиною проєкту над якими ви зараз працюєте. {{Note_(uk)|1='''KDevelop''' не завжди може здогадатися, коли слід допомогти вам автоматичним доповненням коду. Якщо підказку автоматичного доповнення не було відкрито автоматично, натисніть комбінацію клавіш <keycap>Ctrl + Пробіл</keycap>, щоб відкрити список варіантів вручну. Загалом же, для того, щоб можна було скористатися автоматичним доповненням, '''KDevelop''' має обробити файли коду вашого проекту. Цю дію буде виконано у фоновому режимі для всіх файлів, які є частиною проектів поточного сеансу після запуску '''KDevelop''', а також після того, як ви припините вводити дані на частку секунди (тривалість паузи можна змінити).}} {{Note_(uk)|1='''KDevelop''' виконує обробку лише тих файлів, які є файлами коду програми, відповідно до типу MIME файла. Цей тип не встановлюється до першого збереження файла. Отже створення нового файла і введення коду до цього файла не увімкне автоматичної обробки файла для використання даних з метою автоматичного доповнення. Щоб увімкнути обробку, файл доведеться зберегти.}} {{Note_(uk)|1=Для того, щоб можна було скористатися автоматичним доповненням, '''KDevelop''' повинен мати доступ до файлів заголовків. Середовище виконає пошук цих файлів у декількох типових теках. Якщо файл заголовка не вдасться знайти автоматично, його пункт у списку буде підкреслено червоною лінією. У такому разі вам слід клацнути на цьому пункті правою кнопкою миші і повідомити '''KDevelop''' явним чином, де слід шукати цей файл та дані, які у ньому зберігаються.}} {{Note_(uk)|1=Налаштування автоматичного доповнення обговорено у [[KDevelop5/Manual/Customizing_KDevelop#Customizing_code_auto-completion|іншому розділі цього підручника]].}} <span id="Adding_new_classes_and_implementing_member_functions"></span> ==== Додавання нових класів та реалізація вкладених функцій ==== У '''KDevelop''' передбачено допоміжну програму для додавання нових класів. Її роботу описано у розділі [[Special:myLanguage/KDevelop5/Manual/Code generation with templates#Creating a new class|Створення класу]]. Простий клас C++ можна створити за допомогою основного шаблона C++ з категорії <tt>Клас</tt>. У допоміжній програмі ви можете вибрати попередні функції-елементи, наприклад порожній конструктор, конструктор копіювання та деструктор. Після завершення роботи допоміжної програми буде створено і відкрито у редакторі нові файли. Основу файла заголовків вже створено, а у новому класів є всі вибрані нами вбудовані функції. Наступними двома кроками мають бути документування класу та його вбудованих функцій та реалізація цих класів і функцій. Нижче ми обговоримо допоміжні засоби з документування класів і функцій. Щоб реалізувати спеціальні функції, які ми вже додали, просто перейдіть на вкладку <menuchoice>bus.cpp</menuchoice>, де вже є каркас наших функцій: [[Image:Kdevelop-bus1.png|475px|thumb|center]] Щоб додати нові вкладені функції, поверніться на вкладку <menuchoice>bus.h</menuchoice> і додайте назву функції. Наприклад, можна додати таке: [[File:Kdevelop-bus4.png|475px|thumb|center]] Зауважте, що реалізацію вже розпочато. Але у межах багатьох стилів програмування функції не слід реалізовувати у файлах заголовків, це слід робити у відповідних файлах .cpp. Для цього розташуйте курсор на назві функції і скористайтеся пунктом меню <menuchoice>Код -> Пересунути до коду</menuchoice> або натисніть комбінацію клавіш <keycap>Ctrl + Alt + S</keycap>. Код між фігурними дужками буде пересунуто з файла заголовків (його буде замінено на крапку з комою для завершення оголошення функції) до відповідного файла коду: [[File:Kdevelop-bus3.png|475px|thumb|center]] Введення коду розпочато. Змінна <code>students</code> має, ймовірно, бути вбудованою змінною класу <code>Bus</code>, але її ще не додано до цього класу. '''KDevelop''' підкреслено цю змінну, щоб позначити те, що середовищу ще нічого не відомо про цю змінну. Цю проблему просто розв’язати: натискання назви змінної відкриє таку панель підказки: [[File:Kdevelop-bus6.png|475px|thumb|center]] Нарешті, метод використання пункту меню <menuchoice>Код -> Пересунути до коду</menuchoice> не завжди призводить до вставляння вбудованої функції до бажаного місця у коді. Наприклад, вам може бути потрібним визначення коду як <code>inline</code> і розташування його у нижній частині файла заголовків. У такому разі вкажіть оголошення і почніть введення визначення функції ось так: [[Image:Kdevelop-add-inline.png|475px|thumb|center]] <span id="Documenting_declarations"></span> ==== Оголошення для документування ==== Хороший код завжди добре документовано, як на рівні реалізації алгоритмів у функціях, так і на рівні інтерфейсу, — тобто класи (вбудовані і загальні) функції та (вбудовані і загальні) змінні слід документувати, щоб всім було зрозумілим їхнє призначення, можливі значення аргументів, попередні та остаточні умови тощо. У документуванні інтерфейсів фактичним стандартом є формат коментарів [http://www.doxygen.org doxygen], дані його можна видобути і показати на придатних для пошуку інтернет-сторінках. У '''KDevelop''' передбачено підтримку коментарів у цьому форматі за допомогою скорочення для створення оболонки-коментаря, який документуватиме клас або вбудовану функцію. Наприклад, припустімо ви вже створили такий код: <syntaxhighlight lang="cpp" line> class Car { public: std::string get_color () const; }; </syntaxhighlight> Тепер нехай вам потрібно додати документацію для класу і вбудованої функції. Для цього пересуньте курсор на перший рядок коду і скористайтеся пунктом меню <menuchoice>Код -> Документувати оголошення</menuchoice> або натисніть комбінацію клавіш <keycap>Alt + Shift + D</keycap>. '''KDevelop''' відкриє таке діалогове вікно: [[Image:Kdevelop-document-declaration.png|475px|thumb|center]] Курсор вже перебуває у затіненій області, щоб ви могли ввести короткий опис (після ключового слова doxygen <code>@brief</code>) цього класу. Тепер ви можете продовжити додавати документацію до цього коментаря, який краще пояснюватиме призначення класу: [[Image:Kdevelop-document-class-purpose.png|475px|thumb|center]] Коли ви дістанетеся кінця рядка, натисніть <keycap>Enter</keycap>, і '''KDevelop''' автоматично розпочне новий рядок, який починатиметься із зірочки, і відступить курсором на один символ. По завершенню документування запису і натискання <keycap>Enter</keycap> поза областю документування, сіре підсвічування буде вилучено. Тепер виконаємо документування вбудованої функції. Знову розташуйте курсор на рядку оголошення і виберіть пункт меню <menuchoice>Код -> Документувати оголошення</menuchoice> або натисніть комбінацію клавіш <keycap>Alt + Shift + D</keycap>: [[Image:Kdevelop-documenting-function.png|475px|thumb|center]] Знову ж таки, '''KDevelop''' автоматично створить каркас коментаря разом з документації щодо самої функції, а також типом даних, які вона повертає. У нашому випадку назва функції доволі очевидно описує її призначення, але часто аргументи функції можуть бути доволі неочевидними, їх слід документувати окремо. Наприклад, розгяньмо трохи цікавішу функцію та коментар, який автоматично створить для неї '''KDevelop''': [[Image:Kdevelop-document-paint-function.png|475px|thumb|center]] У нашому прикладі у запропонованому коментарі вже містяться всі поля Doxygen для окремих параметрів. <span id="Renaming_variables,_functions_and_classes"></span> ==== Перейменування змінних, функцій і класів ==== Іноді виникає потреба у перейменуванні функції, класу або змінної. Наприклад, нехай маємо такий код: [[Image:kdevelop-38.png|thumb|550px|center]] Нехай пізніше ми зрозуміємо, що назва <code>remove_students</code> є невдалою, і її варто назвати, скажімо, <code>throw_out_students</code>. Ви могли б виконати пошук з заміною назви функції, але у такого способу є два недоліки: * Функцію може бути використано у декількох файлах. * Нам потрібно перейменувати лише цю функцію і не чіпати функції, які можуть мати ту саму назву, але які оголошено у інших класах або просторах назв. Обидві ці проблеми можна розв’язати наведенням курсора на всі використання назви функції з наступним вибором пункту <menuchoice>Код -> Перейменувати оголошення</menuchoice> (або клацанням правою кнопкою миші на назві з вибором пункту <menuchoice>Перейменувати Bus::remove_students</menuchoice>). У відповідь буде відкрито діалогове вікно, за допомогою якого ви зможете ввести нову назву функції і переглянути всі місця, де використано функцію: [[Image:kdevelop-39.png|thumb|550px|center]] <span id="Code_snippets"></span> ==== Фрагменти коду ==== У більшості проектів зустрічаються фрагменти коду, які доводиться використовувати доволі часто. Приклади: інструкції компілятора, цикл для всіх інструкцій, для функцій запису інтерфейсу користувача перевірки введених користувачем даних без відкриття вікна повідомлення про помилку. У проекті автора цього підручника часто використовується такий різновид коду: <syntaxhighlight lang="cpp" line> for (typename Triangulation<dim,spacedim>::active_cell_iterator; cell = triangulation.begin_active(); cell != triangulation.end(); ++cell) ... Робимо щось із cell ... </syntaxhighlight> Замість введення тексту подібного типу знову і знову (із усіма можливими друкарськими помилками), ви можете скористатися інструментом '''KDevelop''' <menuchoice>Фрагменти</menuchoice>. Для цього відкрийте панель інструментів (див. [[Special:myLanguage/KDevelop5/Manual/Working with source code#Tools and views|Інструменти і панелі перегляду]], якщо відповідної кнопки ще немає на периметрі вашого вікна). Крім того, ви можете скористатися пунктом <menuchoice>Вікно -> Панелі інструментів</menuchoice> на верхній панелі меню і увімкнути <menuchoice>Фрагменти</menuchoice>. Далі, натисніть кнопку <menuchoice>Додати сховище</menuchoice> (дещо оманлива назва — за допомогою цього пункту можна створити іменовану збірку фрагментів для початкових кодів певного типу, наприклад, коду C++) і створіть порожнє сховище. Потім натисніть <menuchoice>Додати фрагмент</menuchoice>, щоб додати фрагмент і відкрити діалогове вікно, подібне до такого: [[Image:Kdevelop-snippet.png|475px|thumb|center]] Якщо сховища із фрагментами ще не було створено, і ваш проєкт засновано на C++, використання пункту меню <menuchoice>Інструменти -> Створити фрагмент</menuchoice> призводить до створення сховища із назвою ''Фрагменти ISO C++'' і записування ваших фрагментів до сховища, як це показано вище. Праворуч у діалоговому вікні ''Створення фрагмента'' розташовано панель перегляду, на якій показано фрагменти, якими можна скористатися. {{Note_uk|1=У назві фрагмента не повинно міститися пробілів або інших спеціальних символів, оскільки вона має бути подібною до звичайної назви функції або змінної (з причин, які буде висвітлено у наступному абзаці). }} Щоб скористатися таким чином визначеним фрагментом, вам слід просто почати вводити у коді його назву, як ви це робите для будь-яких інших функцій або змінних. Для введених літер буде відкрито панель автоматичного доповнення (це означає, що можна використовувати будь-які достатньо довгі для розрізнення назви фрагментів, зокрема назви, подібні до використаної нами), якщо ви виберете відповідний пункт фрагмента на панелі підказки автоматичного доповнення (наприклад, натисканням клавіші <keycap>Enter</keycap>), вже введену частину назви фрагмента буде замінено повним текстом фрагмента з відповідними відступами: [[File:Kdevelop-snippet-entry-preview.png|475px|thumb|center]] Зауважте, що, щоб це спрацювало, слід відкрити або зробити видимою панель інструментів <menuchoice>Фрагменти</menuchoice>. Альтернативним способом вставлення фрагмента є просте клацання на ньому на панелі інструментів фрагментів. Якщо навести вказівник миші на фрагмент, програма покаже вам панель перегляду коду фрагмента. {{Note_(uk)|1=Фрагменти є набагато потужнішими, ніж було пояснено. Повний опис можливостей, які вони надають, ознайомтеся з [[Special:myLanguage/KDevelop5/Manual/Tool_list/Snippets|докладною документацією з інструмента «Фрагменти»]].}}<span id="Modes and working sets"></span> <span id="Modes_and_working_sets"></span> === Режими і робочі набори === [[File:Kdevelop-code-button.png|250px|thumb|center]] Якщо ви вже дісталися так далеко, зверніть увагу на верхній правий кут головного вікна '''KDevelop''' — ви побачити кнопку коду. Якщо натиснути цю кнопку, програма запропонує два '''варіанти''' дій: <menuchoice>Внести поточний проєкт...</menuchoice> (див. [[Special:myLanguage/KDevelop5/Manual/Working with version control systems|робота із системами керування версіями]]) та <menuchoice>Діагностика</menuchoice> (див. [[Special:myLanguage/KDevelop5/Manual/Debugging programs|діагностування вад у програмах]]). [[File:Kdevelop sessionsprojectsworkingsets.png|250px|thumb|center]] Для кожного з режимів передбачено власний набір інструментів, кнопки яких розташовано вздовж периметра вікна середовища, для кожного режиму передбачено власний ''робочий набір'' відкритих файлів і документів. Крім того, кожен такий робочий набір пов’язано з поточним сеансом, тобто маємо взаємозв’язок, подібний до показаного вище. Зауважте, що файли у робочому наборі є частиною одного сеансу, але можуть належати до різних проектів, які є частинами цього сеансу. Якщо ви відкрили вікно '''KDevelop''' вперше, робочий набір буде порожнім, — ще не відкрито жодного файла. Але з відкриттям файлів для редагування (або діагностики, перегляду у інших режимах) ваш робочий набір розширюватиметься. Кожного разу, коли ви завершуватимете роботу '''KDevelop''', а потім починатимете її знову, робочий набір буде зберігатися і відновлюватися, тобто ви працюватимете з одним набором відкритих файлів. [[File:kdevelop-upper-right-corner.png|thumb|300px|center]] [[File:kdevelop-working-set-icon.png|thumb|100px|center]] Якщо ви наведете вказівник миші на символ для робочого набору, програма покаже панель підказки зі списком файлів, які відкрито у цьому робочому наборі (у нашому прикладі це файли <code>helper.h</code>, <code>helper.cpp</code>, <code>filemanagerlistjob.h</code> та <code>filemanagerlistjob.cpp</code>). Піктограма робочого набору може мати різні кольори у різний час, але ці кольори не мають певного значення. Клацання на квадраті зі знаком «мінус» закриє вкладку для відповідного файла у робочому наборі. Суть роботи пункту закриття робочого набору полягає у тому, що його вибір не лише закриває усі файли, але і просить вас зберегти усі файли, до яких внесено зміни, але які не збережено, і відкриває новий порожній набір.<span id="Some useful keyboard shortcuts"></span> <span id="Some_useful_keyboard_shortcuts"></span> === Деякі корисні клавіатурні скорочення === У редакторі '''KDevelop''' використано стандартні клавіатурні скорочення для звичайних дій з редагування. Ці скорочення можна змінити, якщо у вас виникне така потреба. [[File:Kdevelop-shortcuts.png|400px|thumb|center]] Передбачено пункт для налаштовування і зберігання різних схем клавіатурних скорочень. За допомогою відповідного вікна ви можете експортувати та імпортувати будь-які ваші схеми. [[File:Kdevelop-shortcut-schemes.png|400px|thumb|center]] Втім, передбачено також підтримку декількох додаткових дій при редагуванні початкового коду. Деякі з цих дій пов'язано із натисканням певних комбінацій клавіш. Зокрема, часто є зручними такі комбінації: {| class="wikitable" !colspan="2"| Пересування кодом |- | <keycap>Ctrl+Alt+O</keycap> | Пришвидшене відкриття файла: вкажіть частину назви файла і виберіть той з них у каталозі проектів поточного сеансу, який вам потрібен; цей файл і буде відкрито. |- | <keycap>Ctrl+Alt+C</keycap> | Пришвидшене відкриття класу: вкажіть частину назви класу і виберіть ту з назв класів, яка вам потрібна; курсор буде переведено до рядка оголошення класу. |- | <keycap>Ctrl+Alt+M</keycap> | Пришвидшене відкриття функції: вкажіть частину назви функції (частини класу) і виберіть з запропонованих варіантів той, який вам потрібен; зауважте, що у списку буде показано оголошення і визначення, а курсор буде переведено до вибраного вами пункту. |- | <keycap>Ctrl+Alt+Q</keycap> | Універсальне пришвидшення відкриття: вкажіть будь-які дані (назву файла, назву класу, назву функції), і вам буде показано список всіх частин проекту, які відповідають критерію пошуку. |- | <keycap>Ctrl+Alt+N</keycap> | Огляд: показує список всіх дій, які виконуються у файлі, наприклад, оголошень класів та визначень функцій. |- | <keycap>Ctrl+,</keycap> | Перейти до визначення функції, якщо курсор перебуває у місці її оголошення. |- | <keycap>Ctrl+.</keycap> | Перейти до оголошення функції або змінної, якщо курсор перебуває у позиції визначення функції. |- | <keycap>Ctrl+Alt+PageDown</keycap> | Перейти до наступної функції |- | <keycap>Ctrl+Alt+PageUp</keycap> | Перейти до попередньої функції |- | <keycap>Ctrl+G</keycap> | Перейти до рядка |- !colspan="2"| Пошук і заміна |- | <keycap>Ctrl+F</keycap> | Знайти |- | <keycap>F3</keycap> | Знайти далі |- | <keycap>Ctrl+R</keycap> | Замінити |- | <keycap>Ctrl+Alt+F</keycap> | Знайти і замінити у декількох файлах |- !colspan="2" | Інші команди |- | <keycap>Ctrl+_</keycap> | Згорнути один рівень: вилучити блок з перегляду, наприклад, якщо ви бажаєте зосередитися на загальнішій картині у функції. |- | <keycap>Ctrl++</keycap> | Розгорнути один рівень: скасувати згортання. |- | <keycap>Ctrl+D</keycap> | Зняти коментування з позначеного фрагмента тексту або поточного рядка. |- | <keycap>Ctrl+Shift+D</keycap> | Додати позначки коментаря до позначеного тексту або поточного рядка. |- | <keycap>Alt+Shift+D</keycap> | Документувати поточну функцію. Якщо курсор перебуває на оголошенні функції або класу, натискання цієї комбінації клавіш призведе до створення коментаря у форматі doxygen зі списком параметрів, значень, які повертаються, тощо. |- | <keycap>Ctrl+T</keycap> | Поміняти місцями поточний і попередній символи |- | <keycap>Ctrl+K</keycap> | Вилучити поточний рядок (зауваження: ця дія не збігається за результатом з дією «вилучити звідси до кінця рядка» у emacs) <!--{-->|} {{Prevnext2 | prevpage=Special:MyLanguage/KDevelop5/Manual/Sessions_and_projects | nextpage=Special:MyLanguage/KDevelop5/Manual/Code_generation_with_templates | prevtext=Сеанси і проекти | nexttext=Створення коду за допомогою шаблонів | index=Special:MyLanguage/KDevelop5/Manual | indextext=Повернутися до меню }} [[Category:Розробка/uk]]
Toggle limited content width