Eclipse插件开发编辑器字体

问题描述:

我使用Eclipse 3.7.0进行插件开发,并使用Xtext 2.9.2。我的编辑偏好设置无法正常工作。Eclipse插件开发编辑器字体

在窗户7,8,10发生这种情况:

enter image description here

  • 在64位版本上,我无法更改编辑器字体。点击更改按钮不会做任何事情,只需将鼠标更改为忙/秒钟一秒钟,然后再恢复正常。

    • 在Windows XP上测试了相同的64位版本,一切正常。
  • 在32位构建中,一切都按预期工作,窗口字体选择器对话框出现。

enter image description here

这是我创建的首选项页面:

@Override 
protected void createFieldEditors() { 
    // Add show font preference 
    fontField = new FontFieldEditor(JFaceResources.TEXT_FONT, EDIT_EDITOR_FONT_LABEL, getFieldEditorParent()); 
    addField(fontField); 

    fontField.setPreferenceStore(getPreferenceStore()); 

    // initialize the font preference with the default resources font if not initialized 
    String defaultFont = getPreferenceStore().getDefaultString(JFaceResources.TEXT_FONT); 
    if(defaultFont.isEmpty()) { 
    font= JFaceResources.getTextFont(); 
    if (font != null) { 
     FontData[] data= font.getFontData(); 
     if (data != null && data.length > 0) { 
      PreferenceConverter.setDefault(getPreferenceStore(), JFaceResources.TEXT_FONT, data[0]); 
     } 
    } 
    } 
} 

.log文件是空的,有没有什么是有益的。


调试时,我去org.eclipse.swt.widgets.FontDialog.java,发现这条线一直没有返回对话框出现错误。从我所了解的情况来看,这个调用应该是阻塞的,并且只有当对话框通过X,OK或Cancel按钮关闭时才会返回,但是它会立即返回false。

/* Open the dialog */ 
boolean success = OS.ChooseFont (lpcf) 

我也尝试作为最小的,因为这example和同样的事情发生的东西。

+1

.log文件中的任何内容。 Eclipse 3.7很旧。 –

+0

@ greg-449是的,不幸的是它超级老,但我必须使用它。此问题不会导致写入.log文件的任何崩溃。我找不到任何.log文件。当我按下Change键时,鼠标只会改变到sandclock/busy指针1秒钟,然后恢复正常,并且什么都不会发生。 –

+0

'.log'文件位于工作区的'.metadata'目录中 - 文件和目录都隐藏在macOS或Linux上。将事情写入日志不一定会发生崩溃。 –

几个月过去了,我找出了导致问题的原因。

基本上我们有一个JNI层,加载一些dll需要MSVCR90.dll。这要求将MSVCR90.dll清单嵌入eclipse.exe用于我们的RCP,这是使用提供的Microsoft Visual Studio完成的。

虽然建筑I意外没有嵌入MSVCR90.dll清单,但是在加载dll时发生错误,该错误表示MSVCR90.dll缺失。然而,我注意到树视图样式看起来正确。

这也是我的其他问题Eclipse RCP Jface/SWT TreeViewer on Windows 10的答案。清单也影响了UI的外观和感觉treeviewsprogressbars看起来不像OS提供的。