【问题标题】:KDevelop 4.2.2 syntax highlighting questionsKDevelop 4.2.2 语法高亮问题
【发布时间】:2011-06-15 23:53:14
【问题描述】:

对于我的 C++ 开发,我在 Ubuntu Natty 上运行 KDevelop,我有两个问题:

1) 它以随机彩虹色突出显示我的所有变量 - 我该如何更改?我希望我的所有变量都是浅蓝色的。

2) 函数颜色总是紫色,我该如何更改?

如果有人知道答案,我将不胜感激。

谢谢!!

【问题讨论】:

  • 我不知道人们实际上在使用 KDevelop。对你来说效果如何?
  • 在尝试了许多其他 PHP 开发替代方案后,我正在评估是否切换到 KDevelop。我厌倦了 Eclipse、Netbeans 和其他软件,它们都是基于 Java 的,慢得要命,而且像地球上没有其他软件一样复杂……非常好。唯一的亮点是您无法调试 PHP 项目...

标签: c++ kdevelop4


【解决方案1】:

这两个问题的答案很简单:目前你不能。

您可以确保所有变量都以相同的颜色突出显示,但该颜色将为黑色且无法更改。前往

设置 -> 配置 KDevelop... -> 语言支持

并确保在Semantic Code Highlighting 部分中,Local Colorization IntensityGlobal Colorization Intensity 都设置为零(即向左滑动滑块)。

但是,您为什么想要这个?就个人而言,我发现为每个变量设置不同的颜色非常方便。它可以让您非常轻松地发现特定变量的所有出现。

【讨论】:

  • 默认设置让我有点头疼:) 将这些光标向左滑动一点,疼痛就消失了。感谢您分享这个,永远不会想通...
  • 即使设置为 0,变量也不是黑色的:/ 很奇怪这样的功能不能被禁用 O.O
  • 老实说,我觉得这很烦人,屏幕上的颜色太多,语法变得一团糟。我个人更喜欢 IDEA 提供的东西,但 IDEA 不能使用 C/++。
【解决方案2】:

是的...源代码很“差”...有很多硬编码值没有选项可以更改它们...幸运的是,它是开源的;)

我遇到了同样的问题:我同意,彩虹色在某些方面增加了可读性,但就个人而言,它分散了我的注意力......所以我为 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
  }

【讨论】:

    【解决方案3】:

    不要去掉不同颜色的变量,你会问自己过去没有它你是怎么做的。

    【讨论】:

    • 为了将来参考,只有在您确实打算回答手头的问题时才回答问题。如果你想分享你的意见去聊天。
    猜你喜欢
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多