Eclipse spelling engine does not exist

2020-03-25 02:53发布

问题:

I'm using Eclipse 3.4 (Ganymede) with CDT 5 on Windows.

When the integrated spell checker doesn't know some word, it proposes (among others) the option to add the word to a user dictionary.

If the user dictionary doesn't exist yet, the spell checker offers then to help configuring it and shows the "General/Editors/Text Editors/Spelling" preference pane. This preference pane however states that "The selected spelling engine does not exist", but has no control to add or install an engine.

How can I put a spelling engine in existence?

Update: What solved my problem was to install also the JDT. This solution was brought up on 2008-09-07 and was accepted, but is now missing.

回答1:

Are you using the C/C++ Development Tools exclusively?

The Spellcheck functionality is dependent upon the Java Development Tools being installed also.

The spelling engine is scheduled to be pushed down from JDT to the Platform,
so you can get rid of the Java related bloat soon enough. :)



回答2:

The CDT version of Ganymede apparently shipped improperly configured. After playing around for a while, I have come up with the following steps that fix the problem.

  1. Export your Eclipse preferences (File > Export > General > Preferences).
  2. Open the exported file in a text editor.
  3. Find the line that says

    /instance/org.eclipse.ui.editors/spellingEngine=org.eclipse.jdt.internal.ui.text.spelling.DefaultSpellingEngine
  4. Change it to

    /instance/org.eclipse.ui.editors/spellingEngine=org.eclipse.cdt.internal.ui.text.spelling.CSpellingEngine

  5. Save the preferences file.

  6. Import the preferences back into Eclipse (File > Import > General > Preferences).

You should now be able to access the Spelling configuration page as seen above.

Note: if you want to add a custom dictionary, Eclipse must be able to access and open the file (i.e. it must exist - an empty file will work)



回答3:

Just a word of warning: If you follow the advice to replace the preference as above, it will affect spell checking if you also use Java. I think all I needed to do was change the "Select spelling engine to use" to the C++ engine (near the top of the preference setting on the preference page General->Editors->Text Editors->Spelling).