gpt4 book ai didi

eclipse - 增加了 Eclipse 中 Consolas 字体的行高

转载 作者:行者123 更新时间:2023-12-02 09:41:54 27 4
gpt4 key购买 nike

很多人都在使用Consolas对于他们的主要编程字体,但不幸的是,在 Eclipse 中无法更改行高,因此它看起来有点难看,如下所示:

enter image description here

我想知道是否有人通过在行之间添加一些额外的空间或简单地更改现在高度更长的字体本身来解决这个问题。

很高兴在 Stackoverflow 上与我们分享。

我在搜索时发现了一些主题,但没有一个是我要找的:

  1. How can I change line height / line spacing in Eclipse?
  2. https://stackoverflow.com/questions/15153938/improved-line-spacing-for-eclipse?lq=1
  3. 等等...

他们中的一些人通过修改现有字体来设计自己的字体(例如 Meslo Font ),因此如果您可以分享修改后的 Consolas 字体,那就太好了。

最佳答案

正如您引用的一个答案中提到的,底层 StyledText 控件确实有一个 setLineSpacing 方法,但现有编辑器不使用它。

Eclipse 4.3 中的 CSS 样式代码确实提供了一种访问此样式的方法,但需要编写一个插件来扩展 CSS,才能实现此目的。

插件的 plugin.xml 如下所示:

<plugin>
<extension
point="org.eclipse.e4.ui.css.core.elementProvider">
<provider
class="linespacing.LineSpacingElementProvider">
<widget
class="org.eclipse.swt.custom.StyledText"></widget>
</provider>
</extension>
<extension
point="org.eclipse.e4.ui.css.core.propertyHandler">
<handler
adapter="linespacing.StyledTextElement"
composite="false"
handler="linespacing.LineSpacingPropertyHandler">
<property-name
name="line-spacing">
</property-name>
</handler>
</extension>
</plugin>

它声明了一个CSS元素提供程序LineSpacingElementProvider,它是:

public class LineSpacingElementProvider implements IElementProvider
{
@Override
public Element getElement(final Object element, final CSSEngine engine)
{
if (element instanceof StyledText)
return new StyledTextElement((StyledText)element, engine);

return null;
}
}

它提供的StyledTextElement只是:

public class StyledTextElement extends ControlElement
{
public StyledTextElement(StyledText control, CSSEngine theEngine)
{
super(control, theEngine);
}
}

plugin.xml 中的第二个声明是名为 line-spacing 的 CSS 属性处理程序

public class LineSpacingPropertyHandler extends AbstractCSSPropertySWTHandler implements ICSSPropertyHandler
{
@Override
protected void applyCSSProperty(Control control, String property, CSSValue value, String pseudo, CSSEngine engine) throws Exception
{
if (!(control instanceof StyledText))
return;

StyledText text = (StyledText)control;

if ("line-spacing".equals(property))
{
int pixelValue = (int)((CSSPrimitiveValue)value).getFloatValue(CSSPrimitiveValue.CSS_PX);

text.setLineSpacing(pixelValue);
}
}

@Override
protected String retrieveCSSProperty(Control control, String property, String pseudo, CSSEngine engine) throws Exception
{
return null;
}
}

安装包含此内容的插件后,您可以修改现有 CSS 样式表之一以包含:

StyledText {
line-spacing: 2px;
}

关于eclipse - 增加了 Eclipse 中 Consolas 字体的行高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20345028/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com