KDevelop4/TipsAndTricks/uk: Difference between revisions

From KDE Wiki Sandbox
(Created page with "=== Помічник з перевантаження ===")
No edit summary
 
(33 intermediate revisions by 2 users not shown)
Line 94: Line 94:
=== Помічник з перевантаження ===
=== Помічник з перевантаження ===


Example code:
Приклад коду:
{{Input|<syntaxhighlight lang="cpp">
{{Input|<syntaxhighlight lang="cpp">
class A {
class A {
Line 104: Line 104:
};
};
</syntaxhighlight>}}
</syntaxhighlight>}}
Inside the class body of <code>B</code> press <keycap>Ctrl + Space</keycap> to bring up code completion. You should notice an item to overload <code>foo(int something);</code>. Execute it with enter and you should get:
Всередині тексту класу <code>B</code> натисніть комбінацію клавіш <keycap>Ctrl + Пробіл</keycap>, щоб викликати інструмент доповнення коду. У списку буде показано пункт перевантаження <code>foo(int something);</code>. Вставте цей пункт за допомогою <keycap>Enter</keycap>. Має вийти таке:
{{Input|<syntaxhighlight lang="cpp">
{{Input|<syntaxhighlight lang="cpp">
class B : public A {
class B : public A {
Line 111: Line 111:
};
};
</syntaxhighlight>}}
</syntaxhighlight>}}
Cool {{Smiley}}.
Чудово {{Smiley}}.


=== Implementation Helper ===
=== Помічник з реалізації ===


Continue where we left of in the '''Overload Helper''':
Продовжимо з того місця, на якому ми зупинилися у прикладі щодо '''Помічника з перевантаження''':
{{Input|<syntaxhighlight lang="cpp">
{{Input|<syntaxhighlight lang="cpp">
class B : public A {
class B : public A {
Line 122: Line 122:
};
};
</syntaxhighlight>}}
</syntaxhighlight>}}
Place your cursor below the class context, request code completion with <keycap>Ctrl + Space</keycap>, you should notice an item to implement <code>B::foo(int something);</code>. Execute it with enter and you should get:
Розташуйте курсор під контекстом класу, викличте засіб завершення коду за допомогою натискання комбінації клавіш <keycap>Ctrl + Пробіл</keycap>. У списку буде показано пункт реалізації <code>B::foo(int something);</code>. Вставте цей пункт натисканням клавіші <keycap>Enter</keycap>. Має вийти щось таке:
{{Input|<syntaxhighlight lang="cpp">
{{Input|<syntaxhighlight lang="cpp">
A* B::foo(int something)
A* B::foo(int something)
Line 129: Line 129:
}
}
</syntaxhighlight>}}
</syntaxhighlight>}}
Awesome {{Smiley}}.
Непогано {{Smiley}}.


=== Quick Open ===
=== Пришвидшення відкриття ===


<menuchoice>Quick Open</menuchoice> is probably one of ''the'' features in '''KDevelop''' that increases productivity:
Пункти <menuchoice>Швидко відкрити</menuchoice> є однією з дуже корисних можливостей '''KDevelop''', вони значно підвищують продуктивність роботи:


* Quick Open Files
* Швидко відкрити файли
Press <keycap>Ctrl + Alt + O</keycap> and type part of a filepath, press return and the selected file gets opened. The search is separated by forward slashes, i.e. you can write this: <code>/a/.cpp</code> and the list will only show paths that have a folder starting with <code>a</code> and files that end on <code>.cpp</code>. Try it out.
Натисніть комбінацію клавіш <keycap>Ctrl + Alt + O</keycap> і введіть частину шляху до файла, натисніть <keycap>Enter</keycap>, і програма відкриє вибраний файл. Елементи шляху відокремлюються звичайними похилими рисками, тобто ви можете ввести <code>/a/.cpp</code>, щоб у списку було показано лише шляхи, назви тек у яких починаються з <code>a</code>, а назви файлів завершуються на <code>.cpp</code>. Спробуйте.


* Quick Open Classes
* Швидко відкрити класи
<keycap>Ctrl + Alt + C</keycap> and input (parts) of the qualified class identifier, press <keycap>Return</keycap> and jump to the declaration of that class.
<keycap>Ctrl + Alt + C</keycap>, потім введіть частину чинного ідентифікатора класу, натисніть <keycap>Enter</keycap>, і курсор буде переведено до оголошення відповідного класу.


Also make sure to explore the other advanced features in <menuchoice>Quick Open</menuchoice>.
Вам варто також ознайомитися з іншими корисними можливостями <menuchoice>Швидкого відкриття</menuchoice>.


=== Outline ===
=== Огляд ===


Similar to quick open, pressing <keycap>Ctrl + Alt + N</keycap> gives you an outline of the current document with the ability to search for an identifier and quickly jump to its declaration.
Подібно до швидкого відкриття, натискання комбінації клавіш <keycap>Ctrl + Alt + N</keycap> надасть вам доступ до огляду поточного документа, а також можливість виконати пошук ідентифікатора та швидко перейти до його оголошення.


=== Context Browsing ===
=== Навігація контекстом ===


Hover a use, declaration or definition and you'll get a popup with information about it. You can also move your cursor in there and press (and keep pressed) the <keycap>Alt</keycap> button to show that popup without using the mouse. Use the arrow keys to navigate between the links in the popup, use enter to jump to the destination of a link.
Наведіть вказівник на текст з використанням, оголошенням або визначенням, і середовище покаже контекстну панель з метаданими. Ви можете перевести курсор у відповідне місце, а потім натиснути (і тримати натисненою) клавішу <keycap>Alt</keycap>, щоб відкрити цю контекстну панель без миші. Для навігації посиланням на контекстній панелі ви можете скористатися клавішами зі стрілочками. За допомогою клавіші <keycap>Enter</keycap> можна перейти за посиланням.


When inside a use, press <keycap>Meta + Left</keycap> or <keycap>Meta + Right</keycap> to jump to the previous/next use. Press <keycap>Ctrl + .</keycap> or <keycap>Ctrl + ,</keycap> to jump to the declaration or definition of the symbol under the cursor. Alternatively click on a symbol with <keycap>Ctrl</keycap> button pressed to do the same.
Пересуньте курсор до використання і натисніть комбінацію клавіш <keycap>Meta + </keycap> або <keycap>Meta + </keycap>, щоб перейти до попереднього або наступного використання. Натисніть комбінацію клавіш <keycap>Ctrl + .</keycap> або <keycap>Ctrl + ,</keycap>, щоб перейти до визначення символу під курсором. Крім того, щоб отримати той самий результат можна навести вказівник миші на символ, натиснути клавішу <keycap>Ctrl</keycap> і клацнути лівою кнопкою миші.


Also take a look at the Navigation menu and it's various shortcuts. Context browsing is awesome!
Вам також варто зазирнути до меню <menuchoice>Навігація</menuchoice> і ознайомитися з відповідними клавіатурними скороченнями. Контекстний перегляд — це чудово!


=== How to work with autotools: automake, autoconf and libtool ===
=== Способи роботи з autotools: automake, autoconf та libtool ===


Kdevelop4 does not support very well the autotools. I suggest using [[Special:myLanguage/Konsole|Konsole]] to run configure scripts to build makefile. The custom makefile support works quite well. I suggest using separate building folder (say project/build).
Підтримка роботи з autotools у Kdevelop4 є недостатньою. Вам варто скористатися [[Special:myLanguage/Konsole|Konsole]] для запуску скриптів налаштування і створення файла makefile. Передбачено непогану підтримку нетипових файлів makefile. Вам варто також користуватися окремою текою збирання (наприклад <tt>project/build</tt>).


After the custom makefiles are in place (say in 'build'-directory) one can add that to build list by clicking <menuchoice>+</menuchoice> button on lower left corner <menuchoice>Project selection</menuchoice> while build directory is selected. This causes command '''make''' to be run when pressing <menuchoice>Build</menuchoice>. One can also directly run say '''make install''' on specific directory by right clicking the folder and selecting '''make install'''. This is nice if you have lots of projects in working set.  
Коли нетипові файли makefile будуть на місці (скажімо, у каталозі «build»), їх можна буде додати до списку збирання натисканням кнопки {{Plus}} у лівому нижньому куті панелі '''Вибір проекту''', якщо позначено каталог <tt>build</tt>. Після додавання '''make''' буде виконано після натискання кнопки <menuchoice>Зібрати</menuchoice>. Крім того, можна безпосередньо віддати команду '''make install''' для певного каталогу: клацніть правою кнопкою миші на пункті каталогу і виберіть '''make install'''. Це чудово працює, якщо у вашому робочому наборі багато проектів.  


'''Libtool''' also causes problems if you try to debug application that has been linked with '''libtool''': the program that see in for example '''''src/bin/program''''' is not the executable, but a script that handles the libraries.  
З '''libtool''' також можуть виникнути проблеми, якщо ви намагаєтеся виконати діагностику програми, яку було об’єднано за допомогою '''libtool''': програма, яка називається, наприклад, '''''src/bin/program''''' є не є основним виконуваним файлом, а лише скриптом, який працює з бібліотеками.  


Problem is properly solved in console by running {{Input|1=libtool --mode=execute '''''<dst_binary>'''''}} but at least currently '''KDevelop4''' does not work good (at all) with other console than default. I have been stuck of using the real binary (found usually from '''''src/bin/.libs/<exec>''''') that might use wrong libraries, so do '''make install''' before every run.
Проблему можна вирішити належним чином за допомогою консолі, віддайте команду {{Input|1=libtool --mode=execute '''''<виконуваний_файл>'''''}} але принаймні поточна версія '''KDevelop4''' не може працювати як слід (взагалі) будь-якою консоллю, окрім типової. Використанню справжнього виконуваного файла (зазвичай, його можна знайти у '''''src/bin/.libs/<exec>''''') може не спрацювати через використання ним не тих бібліотек, отже доводиться виконувати '''make install''' перед кожним запуском програми.


=== KDE Classes Documentation ===
=== Документація з класів KDE ===


Using the '''Qt Documentation''' plugin you may integrate KDE documentation along with Qt documentation. Point your browser at [http://api.kde.org/ KDE API Reference] and download the desired .qch file (not all modules provide one). Then configure the '''Qt Documentation''' plugin by adding the downloaded files. That's it! Whenever you hover a KDE class you can see a link <menuchoice>Show documentation for KFooClass</menuchoice> which points to KFooClass documentation. Enjoy.
За допомогою додатка '''Документація Qt''' ви можете поєднати документацію KDE з документацією Qt. Відкрийте у вашій програмі для перегляду інтернету сторінку [http://api.kde.org/ довідника з API KDE] і звантажте потрібний вам файл <tt>.qch</tt> (такий файл передбачено не для всіх модулів). Після цього налаштуйте додаток '''Документація Qt''', додавши до списку звантажені файли. Ось і все! Тепер, коли ви наводитимете вказівник миші на клас KDE, ви зможете побачити посилання <menuchoice>Показати документацію з KFooClass</menuchoice>, яке вказуватиме на документацію з KFooClass. Приємної роботи.


[[Category:Development]]
[[Category:Розробка/uk]]

Latest revision as of 07:38, 13 August 2012

Other languages:

Підказки і настанови

Автоматичне доповнення коду

Хоча передбачено автоматичне доповнення коду, іноді може виникнути потреба і у викликанні такого доповнення вручну. Натисніть Ctrl + Пробіл, щоб побачити докладний список доповнення коду. Пересуватися пунктами списку можна за допомогою кнопок зі стрілочками (/). Щоб переглянути документацію з позначеного пункту, натисніть (і утримуйте натиснутою) клавішу Alt. Щоб вставити пункт зі списку, натисніть клавішу Enter.

Помічник з типів C++

Припустімо, що у вашому коді є такий фрагмент:

#include <vector>
void myFunc(const std::vector<int>& v) {

}

Тепер слід виконати послідовну ітеративну обробку вмісту. Замість вписування типу ітератора, достатньо написати:

  it = vector.begin();

Після чого зачекати секунду, доки помічник не покаже панель у нижній частині області редактора. Тепер можна натиснути Alt + 1, щоб виконати дію помічника і отримати таке:

  std::vector< int >::iterator it = v.begin();

Чудово, вдалося зекономити доволі багато часу. Цей спосіб працює з більшістю або навіть з усіма виразами: якщо праву частину виразу можна обчислити, помічник здатен додати правильне визначення типу до лівої частини.

Помічник підписів C++

Приклад коду:

class foo {
  int bar();
};

int foo::bar()
{
}

Тепер спробуйте виконати вказані далі кроки, зупиняючись на секунду після виконання кожного з них. Застосовуйте пропозиції помічника, які буде показано на панелі у нижній частині області редагування, за допомогою натискання комбінації клавіш Alt + 1:

  1. додайте параметр, наприклад int foo до кожного підпису у визначенні або оголошенні;
  2. створіть один підпис const;
  3. змініть тип параметра;
  4. вилучіть параметр.

Знову ж таки, дуже зручний інструмент для економії часу.

Помічник пропущених оголошень C++

Приклад коду:

class foo {
  int bar();
};

foo::bar()
{
}

Впишіть у реалізацію bar таке:

  myVar = 1;

Середовище відкриє панель помічника і запропонує вам три варіанти:

  1. оголосити int myVar локально (local) (див. помічник з типів);
  2. оприлюднити (public) int myVar, додає оголошення до тіла класу;
  3. закрити (private) int myVar, те саме, що і пункт вище, але у розділі private.

Цей спосіб працює навіть для функцій:

class foo {
};

int main() {
  foo f;

}

Тепер введіть це трохи нижче foo f;:

  f.someFunction(1, true, "asdf");

Помічник запропонує вам оголосити функцію. Зрештою, ви отримаєте таке:

class foo {
public:
  void someFunction( int arg1, bool arg2, const char* arg3 );
};

Чудово .


Помічник з перевантаження

Приклад коду:

class A {
public:
  virtual A* foo(int something){}
};
class B : public A {

};

Всередині тексту класу B натисніть комбінацію клавіш Ctrl + Пробіл, щоб викликати інструмент доповнення коду. У списку буде показано пункт перевантаження foo(int something);. Вставте цей пункт за допомогою Enter. Має вийти таке:

class B : public A {
public:
  virtual A* foo(int something);
};

Чудово .

Помічник з реалізації

Продовжимо з того місця, на якому ми зупинилися у прикладі щодо Помічника з перевантаження:

class B : public A {
public:
  virtual A* foo(int something);
};

Розташуйте курсор під контекстом класу, викличте засіб завершення коду за допомогою натискання комбінації клавіш Ctrl + Пробіл. У списку буде показано пункт реалізації B::foo(int something);. Вставте цей пункт натисканням клавіші Enter. Має вийти щось таке:

A* B::foo(int something)
{
  A::foo(something);
}

Непогано .

Пришвидшення відкриття

Пункти Швидко відкрити є однією з дуже корисних можливостей KDevelop, вони значно підвищують продуктивність роботи:

  • Швидко відкрити файли

Натисніть комбінацію клавіш Ctrl + Alt + O і введіть частину шляху до файла, натисніть Enter, і програма відкриє вибраний файл. Елементи шляху відокремлюються звичайними похилими рисками, тобто ви можете ввести /a/.cpp, щоб у списку було показано лише шляхи, назви тек у яких починаються з a, а назви файлів завершуються на .cpp. Спробуйте.

  • Швидко відкрити класи

Ctrl + Alt + C, потім введіть частину чинного ідентифікатора класу, натисніть Enter, і курсор буде переведено до оголошення відповідного класу.

Вам варто також ознайомитися з іншими корисними можливостями Швидкого відкриття.

Огляд

Подібно до швидкого відкриття, натискання комбінації клавіш Ctrl + Alt + N надасть вам доступ до огляду поточного документа, а також можливість виконати пошук ідентифікатора та швидко перейти до його оголошення.

Навігація контекстом

Наведіть вказівник на текст з використанням, оголошенням або визначенням, і середовище покаже контекстну панель з метаданими. Ви можете перевести курсор у відповідне місце, а потім натиснути (і тримати натисненою) клавішу Alt, щоб відкрити цю контекстну панель без миші. Для навігації посиланням на контекстній панелі ви можете скористатися клавішами зі стрілочками. За допомогою клавіші Enter можна перейти за посиланням.

Пересуньте курсор до використання і натисніть комбінацію клавіш Meta + ← або Meta + →, щоб перейти до попереднього або наступного використання. Натисніть комбінацію клавіш Ctrl + . або Ctrl + ,, щоб перейти до визначення символу під курсором. Крім того, щоб отримати той самий результат можна навести вказівник миші на символ, натиснути клавішу Ctrl і клацнути лівою кнопкою миші.

Вам також варто зазирнути до меню Навігація і ознайомитися з відповідними клавіатурними скороченнями. Контекстний перегляд — це чудово!

Способи роботи з autotools: automake, autoconf та libtool

Підтримка роботи з autotools у Kdevelop4 є недостатньою. Вам варто скористатися Konsole для запуску скриптів налаштування і створення файла makefile. Передбачено непогану підтримку нетипових файлів makefile. Вам варто також користуватися окремою текою збирання (наприклад project/build).

Коли нетипові файли makefile будуть на місці (скажімо, у каталозі «build»), їх можна буде додати до списку збирання натисканням кнопки у лівому нижньому куті панелі Вибір проекту, якщо позначено каталог build. Після додавання make буде виконано після натискання кнопки Зібрати. Крім того, можна безпосередньо віддати команду make install для певного каталогу: клацніть правою кнопкою миші на пункті каталогу і виберіть make install. Це чудово працює, якщо у вашому робочому наборі багато проектів.

З libtool також можуть виникнути проблеми, якщо ви намагаєтеся виконати діагностику програми, яку було об’єднано за допомогою libtool: програма, яка називається, наприклад, src/bin/program є не є основним виконуваним файлом, а лише скриптом, який працює з бібліотеками.

Проблему можна вирішити належним чином за допомогою консолі, віддайте команду

libtool --mode=execute <виконуваний_файл>

але принаймні поточна версія KDevelop4 не може працювати як слід (взагалі) будь-якою консоллю, окрім типової. Використанню справжнього виконуваного файла (зазвичай, його можна знайти у src/bin/.libs/<exec>) може не спрацювати через використання ним не тих бібліотек, отже доводиться виконувати make install перед кожним запуском програми.

Документація з класів KDE

За допомогою додатка Документація Qt ви можете поєднати документацію KDE з документацією Qt. Відкрийте у вашій програмі для перегляду інтернету сторінку довідника з API KDE і звантажте потрібний вам файл .qch (такий файл передбачено не для всіх модулів). Після цього налаштуйте додаток Документація Qt, додавши до списку звантажені файли. Ось і все! Тепер, коли ви наводитимете вказівник миші на клас KDE, ви зможете побачити посилання Показати документацію з KFooClass, яке вказуватиме на документацію з KFooClass. Приємної роботи.