许多人正在使用Consolas作为他们的主要编程字体,但遗憾的是,没有办法在Eclipse中更改行高,因此它看起来有点难看,如下所示:
我想知道是否有人通过在线之间添加一些额外空间或仅仅更改现在具有更高高度的字体本身来解决这个问题。
在Stackoverflow上与我们分享会很高兴。
在搜索时我发现了一些主题,但没有一个是我想要的:
他们中的一些人通过修改现有的字体来设计他们自己的字体(例如Meslo Font),所以如果你能分享你修改过的Consolas字体会很好。
答案 0 :(得分:4)
正如在其中一个答案中提到的那样,基础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;
}
答案 1 :(得分:0)
您最好选择不同的字体。不要只是坚持做事。尝试新事物并接受它们。 :D我也在使用Consolas。但是现在我正在使用Courier New并且它们非常好。如果您有21英寸或更大的显示器,您可以使用12或14尺寸的Courier New。一旦您使用它,您将习惯使用Consolas现在:P
答案 2 :(得分:0)