KDevelop 4.2.2 с подсветкой синтаксиса вопросов
Для разработки на C++ я использую KDevelop в Ubuntu Natty, у меня есть два вопроса:
1) Он подсвечивает все мои переменные случайными цветами радуги - как я могу это изменить? Я хочу, чтобы все мои переменные были светло-голубыми.
2) Цвет функций всегда фиолетовый, как я могу это изменить?
Буду признателен, если кто-то знает ответ.
Спасибо!!
3 ответа
Ответ на оба ваших вопроса прост: на данный момент вы не можете.
Вы можете убедиться, что все переменные выделены одним и тем же цветом, но этот цвет будет черным и не может быть изменен. Идти к
Настройки -> Настроить KDevelop... -> Поддержка языков
И убедитесь, что в Semantic Code Highlighting
часть как Local Colorization Intensity
а также Global Colorization Intensity
установлены на ноль (т.е. сдвиньте ползунок влево).
Однако зачем вам это? Лично мне очень удобно иметь разные цвета для каждой переменной. Это позволяет очень легко обнаружить все вхождения определенной переменной.
Да... исходный код довольно "плохой"... есть много жестко закодированных значений без вариантов их изменения... К счастью, это открытый исходный код;)
У меня закончилась та же проблема: я согласен, цвета радуги в некоторой степени повышают читаемость, но лично меня это отвлекает... Итак, я сделал этот патч для kdevplatform:
diff -aur -x '*.user' -x CMakeFiles kdevplatform-1.7.0-o/language/highlighting/colorcache.cpp kdevplatform-1.7.0-n/language/highlighting/colorcache.cpp
--- kdevplatform-1.7.0-o/language/highlighting/colorcache.cpp 2014-08-26 19:49:48.000000000 +0000
+++ kdevplatform-1.7.0-n/language/highlighting/colorcache.cpp 2014-10-23 19:50:37.667559094 +0000
@@ -43,37 +43,38 @@
#define ifDebug(x)
-// ######### start interpolation
+//// ######### start interpolation
-uint totalColorInterpolationStepCount = 6;
-uint interpolationWaypoints[] = {0xff0000, 0xff9900, 0x00ff00, 0x00aaff, 0x0000ff, 0xaa00ff};
-//Do less steps when interpolating to/from green: Green is very dominant, and different mixed green tones are hard to distinguish(and always seem green).
-uint interpolationLengths[] = {0xff, 0xff, 0xbb, 0xbb, 0xbb, 0xff};
-
-uint totalGeneratedColors = 10;
-
-uint totalColorInterpolationSteps()
-{
- uint ret = 0;
- for(uint a = 0; a < totalColorInterpolationStepCount; ++a)
- ret += interpolationLengths[a];
- return ret;
-}
-
-///Generates a color from the color wheel. @param step Step-number, one of totalColorInterpolationSteps
-QColor interpolate(uint step)
-{
- uint waypoint = 0;
- while(step > interpolationLengths[waypoint]) {
- step -= interpolationLengths[waypoint];
- ++waypoint;
- }
-
- uint nextWaypoint = (waypoint + 1) % totalColorInterpolationStepCount;
-
- return KColorUtils::mix( QColor(interpolationWaypoints[waypoint]), QColor(interpolationWaypoints[nextWaypoint]),
- float(step) / float(interpolationLengths[waypoint]) );
-}
+//uint totalColorInterpolationStepCount = 6;
+//uint interpolationWaypoints[] = {0xff0000, 0xff9900, 0x00ff00, 0x00aaff, 0x0000ff, 0xaa00ff};
+////Do less steps when interpolating to/from green: Green is very dominant, and different mixed green tones are hard to distinguish(and always seem green).
+//uint interpolationLengths[] = {0xff, 0xff, 0xbb, 0xbb, 0xbb, 0xff};
+
+//uint totalGeneratedColors = 10;
+
+//uint totalColorInterpolationSteps()
+//{
+// uint ret = 0;
+// for(uint a = 0; a < totalColorInterpolationStepCount; ++a)
+// ret += interpolationLengths[a];
+// return ret;
+//}
+
+/////Generates a color from the color wheel. @param step Step-number, one of totalColorInterpolationSteps
+
+//QColor interpolate(uint step)
+//{
+// uint waypoint = 0;
+// while(step > interpolationLengths[waypoint]) {
+// step -= interpolationLengths[waypoint];
+// ++waypoint;
+// }
+
+// uint nextWaypoint = (waypoint + 1) % totalColorInterpolationStepCount;
+
+// return KColorUtils::mix( QColor(interpolationWaypoints[waypoint]), QColor(interpolationWaypoints[nextWaypoint]),
+// float(step) / float(interpolationLengths[waypoint]) );
+//}
// ######### end interpolation
namespace KDevelop {
@@ -144,6 +145,7 @@
m_defaultColors = new CodeHighlightingColors(this);
m_colors.clear();
+ /*
uint step = totalColorInterpolationSteps() / totalGeneratedColors;
uint currentPos = m_colorOffset;
ifDebug(kDebug() << "text color:" << m_foregroundColor;)
@@ -152,6 +154,7 @@
ifDebug(kDebug() << "color" << a << "interpolated from" << currentPos << " < " << totalColorInterpolationSteps() << ":" << (void*) m_colors.last().rgb();)
currentPos += step;
}
+ */
m_validColorCount = m_colors.count();
m_colors.append(m_foregroundColor);
}
он удаляет сгенерированный цвет, поэтому переменные теперь действительно черного цвета (цвет переднего плана).
для 2) кажется, что текущая версия учитывает цвет синтаксиса kate (не уверен).
на Archlinux я тоже сделал это PKGBUILD:
pkgname=kdevplatform-no-rainbow-highlight
_pkgname=kdevplatform without rainbow colors highlighting
pkgver=1.7.0
_pkgver=4.7.0
pkgrel=2
pkgdesc="A C/C++ development platform for KDE"
arch=('i686' 'x86_64')
url="http://www.kdevelop.org/"
license=('GPL')
provides=('kdevplatform')
conflicts=('kdevplatform')
depends=('kdelibs' 'subversion' 'qjson')
optdepends=("kdesdk-kompare: difference checking")
makedepends=('cmake' 'automoc4' 'boost')
install="${_pkgname}.install"
source=("http://download.kde.org/stable/kdevelop/${_pkgver}/src/${_pkgname}-${pkgver}.tar.xz"
"no-rainbow-color.patch"
)
sha1sums=('9fc196e7cb09ab33fd5cfbf5af19aa7c513efdc9'
'bed3c7e470a6a5a56bf1611e0effd7b8a8761e33')
prepare() {
cd ${_pkgname}-${pkgver}
patch -p1 -i ${srcdir}/no-rainbow-color.patch
cd ${srcdir}
mkdir build
}
build() {
cd build
cmake ../${_pkgname}-${pkgver} \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_SKIP_RPATH=ON \
-DCMAKE_BUILD_TYPE=Release
make
}
package() {
cd build
make DESTDIR="${pkgdir}" install
}
Не избавляйтесь от переменных с разными цветами, вы спросите себя, как раньше обходились без него.