GithubHelp home page GithubHelp logo

spell-check's Introduction

Atom and all repositories under Atom will be archived on December 15, 2022. Learn more in our official announcement

Spell Check package

CI

Highlights misspelling in Atom and shows possible corrections.

Use cmd-shift-: for Mac or ctrl-shift-: for Windows or Linux to bring up the list of corrections when your cursor is on a misspelled word.

By default spell check is enabled for the following files:

  • Plain Text
  • GitHub Markdown
  • Git Commit Message
  • AsciiDoc
  • reStructuredText

You can override this from the Spell Check settings in the Settings View (cmd-,). The Grammars config option is a list of scopes for which the package will check for spelling errors.

To enable Spell Check for your current file type: put your cursor in the file, open the Command Palette (cmd-shift-p for Mac or ctrl-shift-p for Windows or Linux), and run the Editor: Log Cursor Scope command. This will trigger a notification which will contain a list of scopes. The first scope that's listed is the one you should add to the list of scopes in the settings for the Spell Check package. Here are some examples: source.coffee, text.plain, text.html.basic.

Changing the dictionary

Except for Mac, Atom needs to know what language to use to perform spell-checking. To list these, set the "Locales" configuration option to the IETF tag (en-US, fr-FR, etc). More than one language can be used, simply separate them by commas.

If no locale is given, then Atom will attempt to infer the language based on environment variables and settings.

If any value is given for the "Locales", then Atom will not automatically add the browser language. So, if your browser is United States English (en-US), leaving this blank will still do US English checking. However, if it the "Locales" is set to French (fr-FR), then the checker will only check French. If the "Locales" is set to en-US, fr-FR, then both languages will be checked.

Missing Languages

This plugin uses the existing system dictionaries. If a locale is selected that is not installed, a warning will pop up when a document that would be spell-checked is loaded. To disable this, either remove the incorrect language from the "Locales" configuration or clear the check on "Use Locales" to disable it entirely.

To get the search paths used to look for a dictionary, make sure the "Notices Mode" is set to "console" or "both", then reload Atom. The developer's console will have the directory list.

Mac

On the Mac, checking "Use System" will use the operating system's spellchecking library. This uses all of the user's loaded dictionaries and doesn't require any customization within Atom.

Checking "Use Locales" and providing locales would use Hunspell as additional dictionaries. Having "Use Locales" checked but no locales given will do nothing.

Windows 8 and Higher

For Windows 8 and 10, this package uses the Windows spell checker, so you must install the language using the regional settings before the language can be chosen inside Atom.

Add the language from the Language and Regions settings panel

If your Windows user does not have Administration privileges, you'll need to do an extra step once the language has been added to enable the spell checker. To do so, you need to install the "Basic typing" language option by following the next steps (you'll be asked for your administrator password):

Click on the "Options" button on the added language

Download the "Basic Typing" language option

Once the additional language is added, Atom will need to be restarted and configured to use it. Add the IEFT tag into the "Locales" setting for the language to be set.

If a Hunspell dictionary is found on a path (see below), it will be used in favor of the Windows API.

Linux

For all Linux-based operating systems, "Use System" does nothing. It can remained checked but has no impact. "Use Locales" is required for spell-checking.

Debian, Ubuntu, and Mint

On Ubuntu, installing "Language Support" may solve problems with the dictionaries. For other distributions (or if Language Support doesn't work), you may use apt to install the dictionaries.

sudo apt-get install hunspell-en-gb
sudo apt-get install myspell-en-gb

On RedHat, the following should work for Italian:

sudo dnf install hunspell
sudo dnf install hunspell-it

You can get a list of currently installed languages with:

/usr/bin/hunspell -D

Atom may require a restart to pick up newly installed dictionaries.

Arch Linux

A language may be installed by running:

pacman -S hunspell-en_GB

For the time being, a soft link may be required if the dictionary provided is "large".

cd /usr/share/hunspell
sudo ln -s en_GB-large.dic en_GB.dic
sudo ln -s en_GB-large.aff en_GB.aff

Hunspell Dictionaries

For all platforms, a Hunspell-compatible dictionary is also supported. To use this, a .dic and .aff need to be located in one of the default search directories or in a directory entered into "Locale paths" (multiples may be entered with commas separating them). If the appropriate files are found for the locale and "Use Locales" is checked, then the dictionary will be used.

For example, if the following is set, then /usr/share/hunspell/en_US.dic will be used:

  • Use Locales: checked
  • Locales: en-US
  • Locale Paths: /usr/share/hunspell

If "Locales" is not provided, then the user's current language will be inferred from environmental settings.

In addition to what is provided, the following paths are checked:

  • /usr/share/hunspell (Linux only)
  • /usr/share/myspell (Linux only)
  • /usr/share/myspell/dicts (Linux only)
  • / (Mac only)
  • /System/Library/Spelling (Mac only)
  • C:\ (Windows only)

Dictionaries can be downloaded from various sites (such as wooorm's repository or LibreOffice's), but the file has to be renamed locale.dic and locale.aff.

Example locations to download are not an endorsement.

spell-check's People

Contributors

50wliu avatar aminya avatar arcanemagus avatar as-cii avatar basnijholt avatar damieng avatar darangi avatar daviwil avatar dmoonfire avatar hansonw avatar izuzak avatar jasonrudolph avatar joefitzgerald avatar kevinnathan avatar kevinsawicki avatar lee-dohm avatar lkashef avatar maxbrunsfeld avatar mcolyer avatar mnquintana avatar probablycorey-and-nathan avatar probablykevin avatar rafeca avatar sadick254 avatar simurai avatar smashwilson avatar speter52 avatar thedaniel avatar tsat-psv avatar zcbenz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spell-check's Issues

Display suggestions in context menu

If spell-check detects that a word is misspelled, it'd be nice if the top n suggestions were displayed at the top of the menu when you right click.

Current:

  • Click into word
  • Right click
  • Find "correct spelling"
  • Click word

Desired (including #32)

  • Right click word
  • Pick suggested spelling

Spell check selection?

Until full spell checking for programming language comments can be performed, how about a command to force a spell check within the selection regardless of file type?

This should be simple and would provide a lot of flexibility for difficult to configure and one-off situations.

Highlight spelling errors

It'd be great if spelling errors were highlighted in some way (toggle on/off etc). The Word-esque red squiggly line is a popular choice.

Failed to activate the spell-check package

[Enter steps to reproduce below:]

  1. Launch Atom Editor
  2. Observe errir

Atom Version: 0.211.0
System: Mac OS X 10.10.3
Thrown From: spell-check package, v0.59.0

Stack Trace

Failed to activate the spell-check package

At Cannot read property 'scopeName' of undefined

TypeError: Cannot read property 'scopeName' of undefined
    at SpellCheckView.module.exports.SpellCheckView.spellCheckCurrentGrammar (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/spell-check/lib/spell-check-view.js:77:41)
    at SpellCheckView.module.exports.SpellCheckView.subscribeToBuffer (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/spell-check/lib/spell-check-view.js:64:16)
    at new SpellCheckView (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/spell-check/lib/spell-check-view.js:44:12)
    at addViewToEditor (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/spell-check/lib/main.js:25:12)
    at Workspace.module.exports.Workspace.observeTextEditors (/Applications/Atom.app/Contents/Resources/app.asar/src/workspace.js:276:9)
    at Object.module.exports.activate (/Applications/Atom.app/Contents/Resources/app.asar/node_modules/spell-check/lib/main.js:14:47)
    at Package.module.exports.Package.activateNow (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:240:19)
    at /Applications/Atom.app/Contents/Resources/app.asar/src/package.js:221:30
    at Package.module.exports.Package.measure (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:165:15)
    at Package.module.exports.Package.activate (/Applications/Atom.app/Contents/Resources/app.asar/src/package.js:213:14)

Commands

Config

{
  "core": {
    "themes": [
      "atom-dark-ui",
      "monokai-dark"
    ],
    "ignoredNames": [
      ".git",
      ".svn",
      ".DS_Store",
      ".hg",
      "*.pyc",
      "node_modules"
    ],
    "projectHome": "/var/www",
    "disabledPackages": [
      "wrap-guide"
    ]
  }
}

Installed Packages

# User
Stylus, v1.0.0
atom-minify, v0.1.6
auto-update-packages, v1.0.0
django-templates, v0.5.0
file-types, v0.4.1
fonts, v0.4.2
jshint, v1.3.7
language-liquid, v0.2.0
language-nunjucks, v2.0.0
monokai-dark, v1.3.0
revert-buffer, v0.5.0
sass-autocompile, v0.7.1
save-session, vundefined
text-manipulation, v0.6.0

# Dev
No dev packages

Wrong dictionary on Mac OS X?

I finally got around to looking into why Atom's spell checker is complaining about my anglicised english. From the documentation, I checked my system dictionary. Spelling was set to "Automatic by Language", but I've now changed it to "British English" (and restarted everything for good measure), and it's still not liking my spelling of "favourite":

keyboard_and_my-favourite-interview-question_markdown_-_users_mathie_development_personal_mathie_github_io-_atom

Is there something else I need to change for it to accept my outdated spelling? 😄

Can't update spell-check

I'm on a MacBook running OSX 10.9. Here's my output:

> [email protected] install /private/var/folders/ql/8_jx3cjs3tj7v70cnywypw_r0000gn/T/apm-install-dir-114623-24561-autam2/node_modules/spell-check/node_modules/spellchecker
> node-gyp rebuild

  CXX(target) Release/obj.target/spellchecker/src/main.o

npm http GET https://registry.npmjs.org/spellchecker
npm http GET https://registry.npmjs.org/underscore-plus
npm http 304 https://registry.npmjs.org/spellchecker
npm http 200 https://registry.npmjs.org/underscore-plus
npm http GET https://registry.npmjs.org/underscore-plus/-/underscore-plus-1.5.1.tgz
npm http 200 https://registry.npmjs.org/underscore-plus/-/underscore-plus-1.5.1.tgz
npm http GET https://registry.npmjs.org/underscore
npm http GET https://registry.npmjs.org/nan/1.2.0
npm http GET https://registry.npmjs.org/bindings
npm http 200 https://registry.npmjs.org/underscore
npm http 304 https://registry.npmjs.org/bindings
npm http 304 https://registry.npmjs.org/nan/1.2.0
In file included from ../src/main.cc:3:
../node_modules/nan/nan.h:342:74: error: too many arguments to function call, expected at most 3, have 4
    return v8::Signature::New(v8::Isolate::GetCurrent(), receiver, argc, argv);
           ~~~~~~~~~~~~~~~~~~                                            ^~~~
/Users/dj/.atom/.node-gyp/.node-gyp/0.11.10/deps/v8/include/v8.h:3550:3: note: 'New' declared here
  static Local<Signature> New(Handle<FunctionTemplate> receiver =
  ^
In file included from ../src/main.cc:3:
../node_modules/nan/nan.h:370:27: error: cannot initialize a parameter of type 'int' with an rvalue of type 'v8::Isolate *'
    return v8::Array::New(v8::Isolate::GetCurrent());
                          ^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/dj/.atom/.node-gyp/.node-gyp/0.11.10/deps/v8/include/v8.h:2307:31: note: passing argument to parameter 'length' here
  static Local<Array> New(int length = 0);
                              ^
In file included from ../src/main.cc:3:
../node_modules/nan/nan.h:375:54: error: too many arguments to function call, expected at most single argument 'length', have 2 arguments
    return v8::Array::New(v8::Isolate::GetCurrent(), length);
           ~~~~~~~~~~~~~~                            ^~~~~~
/Users/dj/.atom/.node-gyp/.node-gyp/0.11.10/deps/v8/include/v8.h:2307:3: note: 'New' declared here
  static Local<Array> New(int length = 0);
  ^
In file included from ../src/main.cc:3:
../node_modules/nan/nan.h:380:53: error: too many arguments to function call, expected single argument 'time', have 2 arguments
    return v8::Date::New(v8::Isolate::GetCurrent(), time).As<v8::Date>();
           ~~~~~~~~~~~~~                            ^~~~
/Users/dj/.atom/.node-gyp/.node-gyp/0.11.10/deps/v8/include/v8.h:2831:3: note: 'New' declared here
  static Local<Value> New(double time);
  ^
In file included from ../src/main.cc:3:
../node_modules/nan/nan.h:380:70: error: expected '(' for function-style cast or type construction
    return v8::Date::New(v8::Isolate::GetCurrent(), time).As<v8::Date>();
                                                             ~~~~~~~~^
../node_modules/nan/nan.h:380:72: error: expected expression
    return v8::Date::New(v8::Isolate::GetCurrent(), time).As<v8::Date>();
                                                                       ^
../node_modules/nan/nan.h:385:53: error: too many arguments to function call, expected single argument 'time', have 2 arguments
    return v8::Date::New(v8::Isolate::GetCurrent(), time).As<v8::Date>();
           ~~~~~~~~~~~~~                            ^~~~
/Users/dj/.atom/.node-gyp/.node-gyp/0.11.10/deps/v8/include/v8.h:2831:3: note: 'New' declared here
  static Local<Value> New(double time);
  ^
In file included from ../src/main.cc:3:
../node_modules/nan/nan.h:385:70: error: expected '(' for function-style cast or type construction
    return v8::Date::New(v8::Isolate::GetCurrent(), time).As<v8::Date>();
                                                             ~~~~~~~~^
../node_modules/nan/nan.h:385:72: error: expected expression
    return v8::Date::New(v8::Isolate::GetCurrent(), time).As<v8::Date>();
                                                                       ^
../node_modules/nan/nan.h:388:15: error: no type named 'UnboundScript' in namespace 'v8'
  typedef v8::UnboundScript NanUnboundScript;
          ~~~~^
../node_modules/nan/nan.h:396:9: error: no member named 'ScriptCompiler' in namespace 'v8'
    v8::ScriptCompiler::Source source(s, origin);
    ~~~~^
../node_modules/nan/nan.h:397:16: error: no member named 'ScriptCompiler' in namespace 'v8'
    return v8::ScriptCompiler::CompileUnbound(
           ~~~~^
../node_modules/nan/nan.h:398:37: error: use of undeclared identifier 'source'; did you mean 'v8::Extension::source'?
        v8::Isolate::GetCurrent(), &source);
                                    ^~~~~~
                                    v8::Extension::source
/Users/dj/.atom/.node-gyp/.node-gyp/0.11.10/deps/v8/include/v8.h:3677:46: note: 'v8::Extension::source' declared here
  const String::ExternalAsciiStringResource* source() const {
                                             ^
In file included from ../src/main.cc:3:
../node_modules/nan/nan.h:398:36: error: must explicitly qualify name of member function when taking its address
        v8::Isolate::GetCurrent(), &source);
                                   ^~~~~~~
                                    Extension::
../node_modules/nan/nan.h:405:9: error: no member named 'ScriptCompiler' in namespace 'v8'
    v8::ScriptCompiler::Source source(s);
    ~~~~^
../node_modules/nan/nan.h:406:16: error: no member named 'ScriptCompiler' in namespace 'v8'
    return v8::ScriptCompiler::CompileUnbound(
           ~~~~^
../node_modules/nan/nan.h:407:37: error: use of undeclared identifier 'source'; did you mean 'v8::Extension::source'?
        v8::Isolate::GetCurrent(), &source);
                                    ^~~~~~
                                    v8::Extension::source
/Users/dj/.atom/.node-gyp/.node-gyp/0.11.10/deps/v8/include/v8.h:3677:46: note: 'v8::Extension::source' declared here
  const String::ExternalAsciiStringResource* source() const {
                                             ^
In file included from ../src/main.cc:3:
../node_modules/nan/nan.h:407:36: error: must explicitly qualify name of member function when taking its address
        v8::Isolate::GetCurrent(), &source);
                                   ^~~~~~~
                                    Extension::
../node_modules/nan/nan.h:432:36: error: too many arguments to function call, expected single argument 'value', have 2 arguments
        v8::Isolate::GetCurrent(), val).As<v8::NumberObject>();
                                   ^~~
/Users/dj/.atom/.node-gyp/.node-gyp/0.11.10/deps/v8/include/v8.h:2869:3: note: 'New' declared here
  static Local<Value> New(double value);
  ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [Release/obj.target/spellchecker/src/main.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:797:12)
gyp ERR! System Darwin 13.3.0
gyp ERR! command "node" "/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /private/var/folders/ql/8_jx3cjs3tj7v70cnywypw_r0000gn/T/apm-install-dir-114623-24561-autam2/node_modules/spell-check/node_modules/spellchecker
gyp ERR! node -v v0.10.26
gyp ERR! node-gyp -v v0.12.2
gyp ERR! not ok 
npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] install script.
npm ERR! This is most likely a problem with the spellchecker package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild

npm ERR! You can get their info via:
npm ERR!     npm owner ls spellchecker
npm ERR! There is likely additional logging output above.

npm ERR! System Darwin 13.3.0
npm ERR! command "/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/bin/node" "/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/node_modules/npm/bin/npm-cli.js" "--globalconfig" "/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/.apmrc" "--userconfig" "/Users/dj/.atom/.apmrc" "install" "/Users/dj/.atom/.node-gyp/.atom/.apm/spell-check/1.0.0/package.tgz" "--target=0.11.10" "--arch=x64"
npm ERR! cwd /private/var/folders/ql/8_jx3cjs3tj7v70cnywypw_r0000gn/T/apm-install-dir-114623-24561-autam2
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.4
npm ERR! code ELIFECYCLE
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /private/var/folders/ql/8_jx3cjs3tj7v70cnywypw_r0000gn/T/apm-install-dir-114623-24561-autam2/npm-debug.log
npm ERR! not ok code 0

Spellchecking in comments

It would be a nice option to have the spellcheck enabled for comments. On some projects the comments get generated into docs etc. and this would help correct mistakes on the fly...

Runaway spell check on long document

With spell-check v0.55.0, atom v0.187.0, and OS X 10.10.3.

I've been using AsciiDoc on Atom to write some stuff (but changing to plain text mode makes no difference). The document exhibiting this problem is around 5000 words long. I noticed that the red wavy line was lagging tremendously behind my typing, jumping forward a character or two at a time sometimes up to 5 words back! Then today things degraded further: any kind of typing will spin Atom Helper to 50-90% CPU, and AppleSpell to near the same -- the fans go to Mach 3, etc.

I had a quick look at the source and am I right in thinking that it dumps the entire document buffer into the spell checker every ::getStoppedChangingDelay ms when actively editing? For me, that means checking 5000 words 3.333 times a second, when 99% of the time 4990+ of them are static. Surely it'd be better to do only the current line/bit that changed since the last run?

Sorry for being all problems and no solutions; I'd have considered doing a PR but CoffeeScript and I aren't friends 😟

grammar syntax for enabling spell checking in other file formats

Hi!
Is there a way to add further file formats to the list of spell-checked file? I read the (closed) thread on html, but I didn't figure out how to discover that HTML goes by text.html.basic.
Where can I find this out, or e.g. enable spell checking on any kind of file?
Thanks!

Default system dictionary not honored under debian.

The readme says: "This package will use the dictionary set by the system", but under debian this is not the case. Debian default wordlist is the one pointed by /usr/share/dict/words, which this package seems to ignore.

Install is failing with v0.40.0 (Atom Version 0.120.0)

I'm getting Installing “[email protected]” failed. when I try to install this package. Here's the stack trace:

> [email protected] install /private/var/folders/hg/x1n3zd4j2gd7fz9vhdw1j0980000gn/T/apm-install-dir-11477-75957-10u5nvx/node_modules/spell-check/node_modules/spellchecker
> node-gyp rebuild

  CXX(target) Release/obj.target/spellchecker/src/main.o

npm http GET https://registry.npmjs.org/spellchecker
npm http GET https://registry.npmjs.org/underscore-plus
npm http 304 https://registry.npmjs.org/underscore-plus
npm http 200 https://registry.npmjs.org/spellchecker
npm http GET https://registry.npmjs.org/spellchecker/-/spellchecker-1.0.1.tgz
npm http 200 https://registry.npmjs.org/spellchecker/-/spellchecker-1.0.1.tgz
npm http GET https://registry.npmjs.org/underscore
npm http 304 https://registry.npmjs.org/underscore
npm http GET https://registry.npmjs.org/nan/1.2.0
npm http 200 https://registry.npmjs.org/nan/1.2.0
npm http GET https://registry.npmjs.org/nan/-/nan-1.2.0.tgz
npm http 200 https://registry.npmjs.org/nan/-/nan-1.2.0.tgz
In file included from ../src/main.cc:3:
../node_modules/nan/nan.h:342:74: error: too many arguments to function call, expected at most 3, have 4
    return v8::Signature::New(v8::Isolate::GetCurrent(), receiver, argc, argv);
           ~~~~~~~~~~~~~~~~~~                                            ^~~~
/Users/max/.atom/.node-gyp/.node-gyp/0.11.10/deps/v8/include/v8.h:3550:3: note: 'New' declared here
  static Local<Signature> New(Handle<FunctionTemplate> receiver =
  ^
In file included from ../src/main.cc:3:
../node_modules/nan/nan.h:370:27: error: cannot initialize a parameter of type 'int' with an rvalue of type 'v8::Isolate *'
    return v8::Array::New(v8::Isolate::GetCurrent());
                          ^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/max/.atom/.node-gyp/.node-gyp/0.11.10/deps/v8/include/v8.h:2307:31: note: passing argument to parameter 'length' here
  static Local<Array> New(int length = 0);
                              ^
In file included from ../src/main.cc:3:
../node_modules/nan/nan.h:375:54: error: too many arguments to function call, expected at most single argument 'length', have 2 arguments
    return v8::Array::New(v8::Isolate::GetCurrent(), length);
           ~~~~~~~~~~~~~~                            ^~~~~~
/Users/max/.atom/.node-gyp/.node-gyp/0.11.10/deps/v8/include/v8.h:2307:3: note: 'New' declared here
  static Local<Array> New(int length = 0);
  ^
In file included from ../src/main.cc:3:
../node_modules/nan/nan.h:380:53: error: too many arguments to function call, expected single argument 'time', have 2 arguments
    return v8::Date::New(v8::Isolate::GetCurrent(), time).As<v8::Date>();
           ~~~~~~~~~~~~~                            ^~~~
/Users/max/.atom/.node-gyp/.node-gyp/0.11.10/deps/v8/include/v8.h:2831:3: note: 'New' declared here
  static Local<Value> New(double time);
  ^
In file included from ../src/main.cc:3:
../node_modules/nan/nan.h:380:70: error: expected '(' for function-style cast or type construction
    return v8::Date::New(v8::Isolate::GetCurrent(), time).As<v8::Date>();
                                                             ~~~~~~~~^
../node_modules/nan/nan.h:380:72: error: expected expression
    return v8::Date::New(v8::Isolate::GetCurrent(), time).As<v8::Date>();
                                                                       ^
../node_modules/nan/nan.h:385:53: error: too many arguments to function call, expected single argument 'time', have 2 arguments
    return v8::Date::New(v8::Isolate::GetCurrent(), time).As<v8::Date>();
           ~~~~~~~~~~~~~                            ^~~~
/Users/max/.atom/.node-gyp/.node-gyp/0.11.10/deps/v8/include/v8.h:2831:3: note: 'New' declared here
  static Local<Value> New(double time);
  ^
In file included from ../src/main.cc:3:
../node_modules/nan/nan.h:385:70: error: expected '(' for function-style cast or type construction
    return v8::Date::New(v8::Isolate::GetCurrent(), time).As<v8::Date>();
                                                             ~~~~~~~~^
../node_modules/nan/nan.h:385:72: error: expected expression
    return v8::Date::New(v8::Isolate::GetCurrent(), time).As<v8::Date>();
                                                                       ^
../node_modules/nan/nan.h:388:15: error: no type named 'UnboundScript' in namespace 'v8'
  typedef v8::UnboundScript NanUnboundScript;
          ~~~~^
../node_modules/nan/nan.h:396:9: error: no member named 'ScriptCompiler' in namespace 'v8'
    v8::ScriptCompiler::Source source(s, origin);
    ~~~~^
../node_modules/nan/nan.h:397:16: error: no member named 'ScriptCompiler' in namespace 'v8'
    return v8::ScriptCompiler::CompileUnbound(
           ~~~~^
../node_modules/nan/nan.h:398:37: error: use of undeclared identifier 'source'; did you mean 'v8::Extension::source'?
        v8::Isolate::GetCurrent(), &source);
                                    ^~~~~~
                                    v8::Extension::source
/Users/max/.atom/.node-gyp/.node-gyp/0.11.10/deps/v8/include/v8.h:3677:46: note: 'v8::Extension::source' declared here
  const String::ExternalAsciiStringResource* source() const {
                                             ^
In file included from ../src/main.cc:3:
../node_modules/nan/nan.h:398:36: error: must explicitly qualify name of member function when taking its address
        v8::Isolate::GetCurrent(), &source);
                                   ^~~~~~~
                                    Extension::
../node_modules/nan/nan.h:405:9: error: no member named 'ScriptCompiler' in namespace 'v8'
    v8::ScriptCompiler::Source source(s);
    ~~~~^
../node_modules/nan/nan.h:406:16: error: no member named 'ScriptCompiler' in namespace 'v8'
    return v8::ScriptCompiler::CompileUnbound(
           ~~~~^
../node_modules/nan/nan.h:407:37: error: use of undeclared identifier 'source'; did you mean 'v8::Extension::source'?
        v8::Isolate::GetCurrent(), &source);
                                    ^~~~~~
                                    v8::Extension::source
/Users/max/.atom/.node-gyp/.node-gyp/0.11.10/deps/v8/include/v8.h:3677:46: note: 'v8::Extension::source' declared here
  const String::ExternalAsciiStringResource* source() const {
                                             ^
In file included from ../src/main.cc:3:
../node_modules/nan/nan.h:407:36: error: must explicitly qualify name of member function when taking its address
        v8::Isolate::GetCurrent(), &source);
                                   ^~~~~~~
                                    Extension::
../node_modules/nan/nan.h:432:36: error: too many arguments to function call, expected single argument 'value', have 2 arguments
        v8::Isolate::GetCurrent(), val).As<v8::NumberObject>();
                                   ^~~
/Users/max/.atom/.node-gyp/.node-gyp/0.11.10/deps/v8/include/v8.h:2869:3: note: 'New' declared here
  static Local<Value> New(double value);
  ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [Release/obj.target/spellchecker/src/main.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:797:12)
gyp ERR! System Darwin 13.3.0
gyp ERR! command "node" "/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /private/var/folders/hg/x1n3zd4j2gd7fz9vhdw1j0980000gn/T/apm-install-dir-11477-75957-10u5nvx/node_modules/spell-check/node_modules/spellchecker
gyp ERR! node -v v0.10.26
gyp ERR! node-gyp -v v0.12.2
gyp ERR! not ok 
npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] install script.
npm ERR! This is most likely a problem with the spellchecker package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:

npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls spellchecker
npm ERR! There is likely additional logging output above.

npm ERR! System Darwin 13.3.0
npm ERR! command "/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/bin/node" "/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/node_modules/npm/bin/npm-cli.js" "--globalconfig" "/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/.apmrc" "--userconfig" "/Users/max/.atom/.apmrc" "install" "/var/folders/hg/x1n3zd4j2gd7fz9vhdw1j0980000gn/T/d-11477-75957-1fg25ef/package.tgz" "--target=0.11.10" "--arch=x64"
npm ERR! cwd /private/var/folders/hg/x1n3zd4j2gd7fz9vhdw1j0980000gn/T/apm-install-dir-11477-75957-10u5nvx
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.4
npm ERR! code ELIFECYCLE
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /private/var/folders/hg/x1n3zd4j2gd7fz9vhdw1j0980000gn/T/apm-install-dir-11477-75957-10u5nvx/npm-debug.log
npm ERR! not ok code 0

Q: spell-checking does not highlight anything (but suggests corrections if prompeted)

Hello folks, I'm trying to troubleshoot the behavior of spell-check on a Yosimite Macbook Air 11' with the most recent Atom version. While system spell checking seems to work e.g. in TextMate I don't see any words highlighted when e.g. opening a plain text file. Prompting corrections works however. Any suggestions where I should start searching for the solution?

What dictionary is used on Ubuntu?

I am using Atom 0.120.0 (built from the release tag) on Ubuntu 14.04. The spellchecker will highlight, say, colour but not color, which suggests it's using US English instead of Australian English.

My system settings are to use Australian English for UI translations.The only relevant environment variables I can see are:

LANG=en_AU.UTF-8
LANGUAGE=en_AU:en

The README says:

This package will use the dictionary set by the system.

...but on it's not really clear what that means for Ubuntu. Is it aspell? Or hunspell? Or myspell? Or something else?

Loaded but not working

I have spell-check package enabled but it does not appear in the palette and when typing in a document an exception is thrown as you can see in the attached picture.

screenshot from 2015-05-12 17 19 16

I'm using Ubuntu 14.04 and Atom 0.198.0

Error on startup: TypeError: Cannot read property 'start' of null

Error starting spell check task TypeError: Cannot read property 'start' of null
at SpellCheckTask.module.exports.SpellCheckTask.start (/Applications/Atom.app/Contents/Resources/app/node_modules/spell-check/lib/spell-check-task.js:31:44)
at SpellCheckView.module.exports.SpellCheckView.updateMisspellings (/Applications/Atom.app/Contents/Resources/app/node_modules/spell-check/lib/spell-check-view.js:108:26)
at SpellCheckView.module.exports.SpellCheckView.subscribeToBuffer (/Applications/Atom.app/Contents/Resources/app/node_modules/spell-check/lib/spell-check-view.js:75:21)
at /Applications/Atom.app/Contents/Resources/app/node_modules/spell-check/lib/spell-check-view.js:33:24
at TextEditor.module.exports.Emitter.emit (/Applications/Atom.app/Contents/Resources/app/node_modules/emissary/lib/emitter.js:118:15)
at TextEditor.module.exports.TextEditor.handleGrammarChange (/Applications/Atom.app/Contents/Resources/app/src/text-editor.js:2715:12)
at /Applications/Atom.app/Contents/Resources/app/src/text-editor.js:196:24
at Emitter.module.exports.Emitter.emit (/Applications/Atom.app/Contents/Resources/app/node_modules/event-kit/lib/emitter.js:71:11)
at TokenizedBuffer.module.exports.TokenizedBuffer.setGrammar (/Applications/Atom.app/Contents/Resources/app/src/tokenized-buffer.js:164:27)
at TokenizedBuffer.module.exports.TokenizedBuffer.grammarAddedOrUpdated (/Applications/Atom.app/Contents/Resources/app/src/tokenized-buffer.js:124:23)
at /Applications/Atom.app/Contents/Resources/app/src/tokenized-buffer.js:3:61
at Emitter.module.exports.Emitter.emit (/Applications/Atom.app/Contents/Resources/app/node_modules/event-kit/lib/emitter.js:71:11)
at GrammarRegistry.module.exports.GrammarRegistry.addGrammar (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar-registry.js:84:20)
at Grammar.module.exports.Grammar.activate (/Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar.js:176:48)
at /Applications/Atom.app/Contents/Resources/app/src/package.js:452:25
at /Applications/Atom.app/Contents/Resources/app/node_modules/first-mate/lib/grammar-registry.js:129:55
at parseContents (/Applications/Atom.app/Contents/Resources/app/node_modules/season/lib/cson.js:169:47)
at /Applications/Atom.app/Contents/Resources/app/node_modules/season/lib/cson.js:251:22
at fs.js:295:14
at Object.oncomplete (fs.js:93:15)
/Applications/Atom.app/Contents/Resources/app/node_modules/spell-check/lib/spell-check-view.js:118
Error starting spell check task TypeError: Cannot read property 'start' of null
at SpellCheckTask.module.exports.SpellCheckTask.start (/Applications/Atom.app/Contents/Resources/app/node_modules/spell-check/lib/spell-check-task.js:31:44)
at SpellCheckView.module.exports.SpellCheckView.updateMisspellings (/Applications/Atom.app/Contents/Resources/app/node_modules/spell-check/lib/spell-check-view.js:108:26)
at /Applications/Atom.app/Contents/Resources/app/node_modules/spell-check/lib/spell-check-view.js:72:26
at TextBuffer.module.exports.Emitter.emit (/Applications/Atom.app/Contents/Resources/app/node_modules/emissary/lib/emitter.js:118:15)
at /Applications/Atom.app/Contents/Resources/app/node_modules/text-buffer/lib/text-buffer.js:1143:17
/Applications/Atom.app/Contents/Resources/app/node_modules/spell-check/lib/spell-check-view.js:118

Lag with Plain Text

I'm working on a Arch Linux x64 with atom v.0.139.0.
When I edit a file with the "Plain Text" file type, the editor begins to lag. @kevinsawicki made me realized that it was the spell-check package that was causing the lag. If I disable the package, atom stops lagging.

Language Detection

I one's primary language is other than english, one usually writes a lot of text in that language while coding with english keywords. Currently Atom corrects spellings according to the system dictionary. This causes significant performance penalties on big files where the language is another than the system language and thus every word gets annotated as misspelled. To avoid slowdowns and visual clutter Atom Spell Check should detect the language used and spellcheck using the according dictionary.

There is the corner case of writing code using english keywords and commenting in another language. One might argue that this is really bad and should be avoided at all costs, but there are cases where mixing languages is OK. For example, when writing a presentation in german and citing code that is in english, Atom Spell Check could spellcheck all parts of the document.

does not seem to work at all, not sure what is going on

Given:

this is not spelllzzed right

There is no highlight. If I right click the word and select "Correct Spelling" nothing happens.

The package is enabled and I have not modified the "grammars" setting.

I am using Atom 0.194.0 and have launched in both safe mode and normal.

Not sure what is going on. Any suggestions?

Thank you.

Uncaught TypeError

Hi,
I just upgraded the spell-check library for the Atom Editor. Then, I started experiencing an error that says: Uncaught TypeError: Cannot read property add of undefined.
Has anyone else experienced this kind of error? Or Am I failing to configure the package properly after installation?
Thanks,
José

Correct spelling via context menu

I saw misspelt something but hadn't read the instructions for this package. I tried to right-click on the misspelt word, but there was no way to correct the spelling there. A context menu for spelling would be much more discoverable than the current command/key binding. IME that's what most spell checkers do.

Performance: SpellCheck causes large CPU load

I have not been able to get spell checking to work on either my mini or my MBAir (original). Both latest Yosemite. Attached Activity Monitor is the usual problem: an Atom Helper and AppleSpell both jump up to large CPU values.

image

Does not work in 0.190.0

If I open atom in safe mode (atom --safe), then it works, otherwise I get this error message in the Developer tools log:

Module version mismatch. Expected 43, got 41. ATOM_SHELL_ASAR.js:118
return old.apply(this, arguments);
^
Error: Module version mismatch. Expected 43, got 41.
at Error (native)
at Object.module.(anonymous function) (ATOM_SHELL_ASAR.js:118:20)
at Object.module.(anonymous function) as .node
at Module.load (module.js:347:32)
at Function.Module._load (module.js:302:12)
at Module.require (module.js:357:17)
at require (module.js:376:17)
at Object. (/Users/kostasx/.atom/packages/spell- check/node_modules/spellchecker/lib/spellchecker.js:2:16)
at Module._compile (module.js:452:26)
at Object.Module._extensions..js (module.js:470:10)

Add a way to choose the current language

When you're a software developer and your native language is not English, chances are that you will be switching a lot between English and your native language. I would like to be able to choose the language from my available spell check dictionaries.

The current workaround is to change the system dictionary, but that is cumbersome and most of the time I only want to change the language for the application I am working in at that moment.

On GNU/Linux graphical desktop environments applications that work with text all provide a way to either set the language of the text (Libre/OpenOffice) or to select the current language (Gedit, web browsers, etc.).

Firefox does this very nicely for example:

switch_language

Can we get this functionality in Atom? On GNU/Linux (I don't know about Windows, does it use Hunspell as well?) changing the user's locale is the only way to change the default dictionary language. This means that Atom's spell check is basically stuck in one language, even though multiple dictionaries are available.

It looks like https://github.com/atom/node-spellchecker provides an OS-agnostic interface for spell-checking (using either Hunspell or the system spell checker if you are using Mac OS X). Perhaps it is possible to add a call for a list of available languages as well?

CMD : doesn't work (keyboard layout issue?)

When attempting to use this package, I click CMD-: (CMD + SHIFT + :), it doesn't work (nothing happens).

I use DVORAK keyboard layout, so I'm wondering if it may be a keyboard layout issue?

HTML spell check.

Hey guys I was wondering if anyone could help me out. How do I enable spell check to work with HTML and CSS files etc?

Warning from spell-check

I'm getting a warning (see picture).

bildschirmfoto 2015-05-04 um 20 52 34

Further spell checking doesn't use the language I defined in the settings (Mac OS X 10.10.3; Atom 0.196.0)

[electron-v0.29.2] spellchecker throws Uncaught Error: Module version mismatch. Expected 44, got 43.

I have recompiled the https://github.com/atom/node-spellchecker
tried all ways which was specified in https://github.com/atom/electron/blob/master/docs/tutorial/using-native-node-modules.md

Interesting thing is i compiled both midi and spellchecker. midi works spellchecker fails. Can anybody let us know whether its working in your end. we are doing something wrong.

"Spellchecker" is essential for many application.

Tried switching to iojs 2.3.3 included process.versions which i tried to compile with.

{ http_parser: '2.5.0',
  node: '2.3.3',
  v8: '4.2.77.20',
  uv: '1.6.1',
  zlib: '1.2.8',
  ares: '1.10.1-DEV',
  modules: '44',
  openssl: '1.0.2c' }

via:

export npm_config_disturl=https://atom.io/download/atom-shell
export npm_config_target=0.29.2
export npm_config_arch=x64
HOME=~/.electron-gyp npm install spellchecker

spellchecker_critical_need

Can't update from 0.38

I've tried updating every couple days since 0.39 and it keeps failing.

I'm on the latest version of atom (after re-downloading from website).

I tried including the npm-debug.log file, but it wasn't there.

[email protected] install /private/var/folders/ql/8_jx3cjs3tj7v70cnywypw_r0000gn/T/apm-install-dir-114713-7945-1no501d/node_modules/spell-check/node_modules/spellchecker
> node-gyp rebuild

  CXX(target) Release/obj.target/spellchecker/src/main.o

npm http GET https://registry.npmjs.org/spellchecker
npm http GET https://registry.npmjs.org/underscore-plus
npm http 304 https://registry.npmjs.org/underscore-plus
npm http 304 https://registry.npmjs.org/spellchecker
npm http GET https://registry.npmjs.org/underscore
npm http 200 https://registry.npmjs.org/underscore
npm http GET https://registry.npmjs.org/nan/1.2.0
npm http 304 https://registry.npmjs.org/nan/1.2.0
In file included from ../src/main.cc:3:
../node_modules/nan/nan.h:342:74: error: too many arguments to function call, expected at most 3, have 4
    return v8::Signature::New(v8::Isolate::GetCurrent(), receiver, argc, argv);
           ~~~~~~~~~~~~~~~~~~                                            ^~~~
/Users/dj/.atom/.node-gyp/.node-gyp/0.11.10/deps/v8/include/v8.h:3550:3: note: 'New' declared here
  static Local<Signature> New(Handle<FunctionTemplate> receiver =
  ^
In file included from ../src/main.cc:3:
../node_modules/nan/nan.h:370:27: error: cannot initialize a parameter of type 'int' with an rvalue of type 'v8::Isolate *'
    return v8::Array::New(v8::Isolate::GetCurrent());
                          ^~~~~~~~~~~~~~~~~~~~~~~~~
/Users/dj/.atom/.node-gyp/.node-gyp/0.11.10/deps/v8/include/v8.h:2307:31: note: passing argument to parameter 'length' here
  static Local<Array> New(int length = 0);
                              ^
In file included from ../src/main.cc:3:
../node_modules/nan/nan.h:375:54: error: too many arguments to function call, expected at most single argument 'length', have 2 arguments
    return v8::Array::New(v8::Isolate::GetCurrent(), length);
           ~~~~~~~~~~~~~~                            ^~~~~~
/Users/dj/.atom/.node-gyp/.node-gyp/0.11.10/deps/v8/include/v8.h:2307:3: note: 'New' declared here
  static Local<Array> New(int length = 0);
  ^
In file included from ../src/main.cc:3:
../node_modules/nan/nan.h:380:53: error: too many arguments to function call, expected single argument 'time', have 2 arguments
    return v8::Date::New(v8::Isolate::GetCurrent(), time).As<v8::Date>();
           ~~~~~~~~~~~~~                            ^~~~
/Users/dj/.atom/.node-gyp/.node-gyp/0.11.10/deps/v8/include/v8.h:2831:3: note: 'New' declared here
  static Local<Value> New(double time);
  ^
In file included from ../src/main.cc:3:
../node_modules/nan/nan.h:380:70: error: expected '(' for function-style cast or type construction
    return v8::Date::New(v8::Isolate::GetCurrent(), time).As<v8::Date>();
                                                             ~~~~~~~~^
../node_modules/nan/nan.h:380:72: error: expected expression
    return v8::Date::New(v8::Isolate::GetCurrent(), time).As<v8::Date>();
                                                                       ^
../node_modules/nan/nan.h:385:53: error: too many arguments to function call, expected single argument 'time', have 2 arguments
    return v8::Date::New(v8::Isolate::GetCurrent(), time).As<v8::Date>();
           ~~~~~~~~~~~~~                            ^~~~
/Users/dj/.atom/.node-gyp/.node-gyp/0.11.10/deps/v8/include/v8.h:2831:3: note: 'New' declared here
  static Local<Value> New(double time);
  ^
In file included from ../src/main.cc:3:
../node_modules/nan/nan.h:385:70: error: expected '(' for function-style cast or type construction
    return v8::Date::New(v8::Isolate::GetCurrent(), time).As<v8::Date>();
                                                             ~~~~~~~~^
../node_modules/nan/nan.h:385:72: error: expected expression
    return v8::Date::New(v8::Isolate::GetCurrent(), time).As<v8::Date>();
                                                                       ^
../node_modules/nan/nan.h:388:15: error: no type named 'UnboundScript' in namespace 'v8'
  typedef v8::UnboundScript NanUnboundScript;
          ~~~~^
../node_modules/nan/nan.h:396:9: error: no member named 'ScriptCompiler' in namespace 'v8'
    v8::ScriptCompiler::Source source(s, origin);
    ~~~~^
../node_modules/nan/nan.h:397:16: error: no member named 'ScriptCompiler' in namespace 'v8'
    return v8::ScriptCompiler::CompileUnbound(
           ~~~~^
../node_modules/nan/nan.h:398:37: error: use of undeclared identifier 'source'; did you mean 'v8::Extension::source'?
        v8::Isolate::GetCurrent(), &source);
                                    ^~~~~~
                                    v8::Extension::source
/Users/dj/.atom/.node-gyp/.node-gyp/0.11.10/deps/v8/include/v8.h:3677:46: note: 'v8::Extension::source' declared here
  const String::ExternalAsciiStringResource* source() const {
                                             ^
In file included from ../src/main.cc:3:
../node_modules/nan/nan.h:398:36: error: must explicitly qualify name of member function when taking its address
        v8::Isolate::GetCurrent(), &source);
                                   ^~~~~~~
                                    Extension::
../node_modules/nan/nan.h:405:9: error: no member named 'ScriptCompiler' in namespace 'v8'
    v8::ScriptCompiler::Source source(s);
    ~~~~^
../node_modules/nan/nan.h:406:16: error: no member named 'ScriptCompiler' in namespace 'v8'
    return v8::ScriptCompiler::CompileUnbound(
           ~~~~^
../node_modules/nan/nan.h:407:37: error: use of undeclared identifier 'source'; did you mean 'v8::Extension::source'?
        v8::Isolate::GetCurrent(), &source);
                                    ^~~~~~
                                    v8::Extension::source
/Users/dj/.atom/.node-gyp/.node-gyp/0.11.10/deps/v8/include/v8.h:3677:46: note: 'v8::Extension::source' declared here
  const String::ExternalAsciiStringResource* source() const {
                                             ^
In file included from ../src/main.cc:3:
../node_modules/nan/nan.h:407:36: error: must explicitly qualify name of member function when taking its address
        v8::Isolate::GetCurrent(), &source);
                                   ^~~~~~~
                                    Extension::
../node_modules/nan/nan.h:432:36: error: too many arguments to function call, expected single argument 'value', have 2 arguments
        v8::Isolate::GetCurrent(), val).As<v8::NumberObject>();
                                   ^~~
/Users/dj/.atom/.node-gyp/.node-gyp/0.11.10/deps/v8/include/v8.h:2869:3: note: 'New' declared here
  static Local<Value> New(double value);
  ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [Release/obj.target/spellchecker/src/main.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:797:12)
gyp ERR! System Darwin 13.3.0
gyp ERR! command "node" "/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /private/var/folders/ql/8_jx3cjs3tj7v70cnywypw_r0000gn/T/apm-install-dir-114713-7945-1no501d/node_modules/spell-check/node_modules/spellchecker
gyp ERR! node -v v0.10.26
gyp ERR! node-gyp -v v0.12.2
gyp ERR! not ok 
npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] install script.
npm ERR! This is most likely a problem with the spellchecker package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls spellchecker
npm ERR! There is likely additional logging output above.

npm ERR! System Darwin 13.3.0

npm ERR! command "/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/bin/node" "/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/node_modules/npm/bin/npm-cli.js" "--globalconfig" "/Applications/Atom.app/Contents/Resources/app/apm/node_modules/atom-package-manager/.apmrc" "--userconfig" "/Users/dj/.atom/.apmrc" "install" "/Users/dj/.atom/.node-gyp/.atom/.apm/spell-check/0.40.0/package.tgz" "--target=0.11.10" "--arch=x64"
npm ERR! cwd /private/var/folders/ql/8_jx3cjs3tj7v70cnywypw_r0000gn/T/apm-install-dir-114713-7945-1no501d
npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.4
npm ERR! code ELIFECYCLE
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /private/var/folders/ql/8_jx3cjs3tj7v70cnywypw_r0000gn/T/apm-install-dir-114713-7945-1no501d/npm-debug.log
npm ERR! not ok code 0

Learn spellings / Add words to dictionary

It seems I can't teach the spell-check new words. This is a crucial feature, please add. If this feature exists already, it needs to be made discoverable, e.g. by right clicking the word, from the command palette, etc.

Thanks!

Spellchecker crashes atom

Trying to use the spellchecker crashes atom.

I'm using openSUSE 13.1 on GNOME 3, with version 0.168.0 (most recent as of now). I don't have any custom packages installed.

How To Reproduce

  • Open atom to any file with an incorrectly spelled word in it (from the terminal, so you can see the below message)
  • right-click on the misspelled word and click "Correct Spelling"
  • wait a few seconds - the app briefly freezes
  • the app should crash, closing the window
  • there will be a message like this in the terminal

/usr/local/bin/atom: line 92: 8131 Segmentation fault nohup "$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@" > "$DOT_ATOM_DIR/nohup.out" 2>&1
[8318:0110/082148:ERROR:browser_main_loop.cc(163)] Running without the SUID sandbox! See https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for more information on developing with the sandbox on.
App load time: 126ms
ATTENTION: default value of option force_s3tc_enable overridden by environment.
Crash dump id: 365edfd3-b61a-4d6b-8bc9-510d6e2794b8

Note that this happens in both normal and safe modes.

Multiple/language dictionaries

Need the ability to specify dictionary language. Most OSs these days ship with their own and even know what the user's preference is already.

Not set other language.

I am changed system dictionary (OS X, russian) and spell checker worked in other apps. But Atom still checked only English language.

Uncaught TypeError: undefined is not a function

Uncaught TypeError: undefined is not a function

Atom Version: 0.158.0
System: Mac OS X 10.10.1
Thrown From: spell-check package, v0.44.0

Steps To Reproduce

  1. [cmd]+[shift]+p
  2. select Pane: spit right

Stack Trace

At /Applications/Atom.app/Contents/Resources/app/node_modules/spell-check/lib/spell-check-view.js:24

TypeError: undefined is not a function
  at new SpellCheckView (/Applications/Atom.app/Contents/Resources/app/node_modules/spell-check/lib/spell-check-view.js:24:40)
  at addViewToEditor (/Applications/Atom.app/Contents/Resources/app/node_modules/spell-check/lib/main.js:24:43)
  at atom-workspace.attachedCallback (/Applications/Atom.app/Contents/Resources/app/src/workspace-view.js:94:18)
  at atom-workspace.handler (/Applications/Atom.app/Contents/Resources/app/src/space-pen-extensions.js:110:34)
  at atom-workspace.jQuery.event.dispatch (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/vendor/jquery.js:4681:9)
  at atom-workspace.elemData.handle (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/vendor/jquery.js:4359:46)
  at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app/src/command-registry.js:243:29)
  at CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app/src/command-registry.js:3:61)
  at CommandRegistry.module.exports.CommandRegistry.dispatch (/Applications/Atom.app/Contents/Resources/app/src/command-registry.js:156:19)
  at TextEditorView.jQuery.fn.trigger (/Applications/Atom.app/Contents/Resources/app/src/space-pen-extensions.js:64:23)
  at TextEditorView.module.exports.TextEditorView.afterAttach (/Applications/Atom.app/Contents/Resources/app/src/text-editor-view.js:180:19)
  at callAttachHooks (/Applications/Atom.app/Contents/Resources/app/node_modules/space-pen/lib/space-pen.js:342:67)
  at atom-pane-axis.PaneAxisElement.childAdded (/Applications/Atom.app/Contents/Resources/app/src/pane-axis-element.js:54:14)
  at Emitter.module.exports.Emitter.emit (/Applications/Atom.app/Contents/Resources/app/node_modules/event-kit/lib/emitter.js:82:11)
  at PaneAxis.module.exports.PaneAxis.addChild (/Applications/Atom.app/Contents/Resources/app/src/pane-axis.js:124:27)
  at PaneAxis.module.exports.PaneAxis.insertChildAfter (/Applications/Atom.app/Contents/Resources/app/src/pane-axis.js:174:19)
  at Pane.module.exports.Pane.split (/Applications/Atom.app/Contents/Resources/app/src/pane.js:658:23)
  at Pane.module.exports.Pane.splitRight (/Applications/Atom.app/Contents/Resources/app/src/pane.js:626:19)
  at atom-pane.atom.commands.add.pane:split-right (/Applications/Atom.app/Contents/Resources/app/src/pane-element.js:226:30)
  at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app/src/command-registry.js:243:29)
  at /Applications/Atom.app/Contents/Resources/app/src/command-registry.js:3:61
  at CommandPaletteView.module.exports.CommandPaletteView.confirmed (/Applications/Atom.app/Contents/Resources/app/node_modules/command-palette/lib/command-palette-view.js:120:32)
  at CommandPaletteView.module.exports.SelectListView.confirmSelection (/Applications/Atom.app/Contents/Resources/app/node_modules/autocomplete/node_modules/atom-space-pen-views/lib/select-list-view.js:335:21)
  at space-pen-div.atom.commands.add.core:confirm (/Applications/Atom.app/Contents/Resources/app/node_modules/autocomplete/node_modules/atom-space-pen-views/lib/select-list-view.js:109:19)
  at CommandRegistry.module.exports.CommandRegistry.handleCommandEvent (/Applications/Atom.app/Contents/Resources/app/src/command-registry.js:243:29)
  at /Applications/Atom.app/Contents/Resources/app/src/command-registry.js:3:61
  at KeymapManager.module.exports.KeymapManager.dispatchCommandEvent (/Applications/Atom.app/Contents/Resources/app/node_modules/atom-keymap/lib/keymap-manager.js:549:16)
  at KeymapManager.module.exports.KeymapManager.handleKeyboardEvent (/Applications/Atom.app/Contents/Resources/app/node_modules/atom-keymap/lib/keymap-manager.js:391:22)
  at HTMLDocument.module.exports.WindowEventHandler.onKeydown (/Applications/Atom.app/Contents/Resources/app/src/window-event-handler.js:167:20)

/cc @atom/core

spell-check source code

Is it possible to get this package to spell check source code, like checking spelling mistakes for variables?

Open folder with split pane, shows the dev tools with an error

Got a new bug today, although it's very weird.
( I'm putting it here because I see spell-check in the first error )

When I opened a folder with Atom ( on which I was working before I closed the editor ) I got the dev tools as soon as the atom loaded, with the stack trace you see.
screen shot 2014-03-19 at 14 00 04

I closed the split pane, closed the dev tools and when I hit cmd+k -> again, I got again the dev tools.

I closed the windows, closed Atom and now I opened again Atom and my folder. Bug is not there now.
But if I make again a split pane, close and open Atom, I get the same bug.
screen shot 2014-03-19 at 14 06 20

Underlines appear under blank space / wrapped space

1

And when I make the window wider again:

2

'global':
  'exception-reporting':
    'userId': '84c65616-dd5b-347b-3d53-50153c0eb9a2'
  'welcome':
    'showOnStartup': false
  'core': {}
  'editor':
    'invisibles': {}
  'spell-check': {}

spell-check 0.45.0
atom 0.165.0

Not working on linux?

So, how can I make this work on my linux machine? it is enabled, and under its "Settings" section I see a Default: ... list of grammars, but it does not highlight a single (misspelled) word.

Could you help me out?

Bad behaviour with soft wrap

Checking "Soft Wrap At Preferred Line Length" in general settings (using any preferred line length) results in misspelled words only getting a squiggly red underline if they are not the first word on a line following a soft wrap.

screen shot 2014-11-16 at 23 24 40

(Using spell-check 0.43.0 Atom 0.146.0 on Mac 10.10)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.