syl20bnr / spacemacs

A community-driven Emacs distribution - The best editor is neither Emacs nor Vim, it's Emacs *and* Vim!
http://spacemacs.org
GNU General Public License v3.0
23.58k stars 4.9k forks source link

Add natural languages layer #5996

Open JAremko opened 8 years ago

JAremko commented 8 years ago

I think Spacemacs can benefit from a prose layer

It should Include something like spell check (we have it), grammar check, punctuation, sentence navigation/manipulation, translation, synonyms search etc. Looks like Emacs has it all [1], [2], [3], [4], [5]. We can organize the packages in one clear layer. But how to manage it? It's not like it should be enabled each time someone views txt, org, md, files. Might be wrap it in a "prose" minor mode?

Any suggestions? What should be in the layer. How to approach it ?

StreakyCobra commented 8 years ago

Somehow related: #5403

JAremko commented 8 years ago

@StreakyCobra And somehow I even commented there.

The table layout is broken on GitHub. Probably because it has a gap - | should be --|

Then :alien: come and wiped my mind. :smile:

mkcode commented 8 years ago

@JAremko - I think we should continue to use this issue as the overall discussion for a prose layer. Any single PR would only be a piece of it.

I left from documentation of current issues with proselint-flycheck here: https://github.com/mkcode/spacemacs/blob/95539151fd5c3f289f47aa94b1ff02c3306df89e/layers/prose/README.org#current-issues.

Any suggestions? What should be in the layer. How to approach it ?

There are so many different ways to go with a general prose mode, like you showed with the 5 links in the top post. We should check out https://github.com/bnbeckwith/writegood-mode and https://github.com/sachac/artbollocks-mode. My choice of what to do next would be to fix the flyicheck-next issue (described in readme) so we run proselint at the same time as other flycheckers and then therefore I can leave it running all the time.

Also, I'm certain that I would like the prose layer to be developed in a way where we could use it in any text or prog modes. Whatever feedback I want for writing, I would like everywhere, including in my long form code comments.

Btw - Most likely I will not be able to contribute the amount of time required to make this really nice so please, anyone else can pick this up.

JAremko commented 8 years ago

WIP wishlist. I think we can put most of it behind SPC x (text) and SPC t (toggle)

Also hookup company-ispell and mb look at ac-ispell

And the layers documentation probably should have references for other really useful stuff that Spacemacs provides like org-mode. avy for buffer and window navigation.

Not sure if all this stuff should go into a single layer.

mkcode commented 8 years ago

@JAremko - Great brainstorming! All of this would be awesome.

When I think about how I would want to use it, I think I would prefer turning everything on or off on one toggle and having config variable for the individual components. Almost as if it were a text proofing (vim-ish) mode. I don't think I would want have each piece on an individual key toggle.

Yay? Nay?

JAremko commented 8 years ago

Yay! But most of the tools do not need to be toggled on/off.

Btw I think we should take auto-completion layer as a guideline - it's a Spacemacs'es way to hook up stuff to different modes. We can do the same with flycheck-proselint and similar stuff. But it will take some engineering. Relevant discussing. Also need @syl20bnr feedback :confused:
Spacemacs has flyspell-correct so helm-flyspell isn't needed.

mkcode commented 8 years ago

But most of the tools do not need to be toggled on/off.

Sweet! Even better

google-translate in the +distribution

Great idea with moving that. I'm sure our wonderful overlord @syl20bnr will appreciate that organization.

Btw I think we should take auto-completion layer as a guideline

Good call. 👍

syl20bnr commented 8 years ago

I'm all for a prose layer which will replace the spacemacs-language layer included in the distribution. Mmmmmh looks to me that we can consider prose to be like a programming language, so:

JAremko commented 8 years ago

@syl20bnr Thanks! Should we keep Natural languages name or rename it back to prose ? I'm thinking, what if we'll want to add something to write poems about Spacemacs ? :smile:

TheBB commented 8 years ago

The typography layer packages can also be considered for moving to this one.

JAremko commented 8 years ago

@TheBB Thanks! Didn't know we have that and that it has typo

JAremko commented 8 years ago

Let's brainstorm TODO:

JAremko commented 8 years ago

updated TODO draft.

syl20bnr commented 8 years ago

@JAremko I like prose because it is short and only one word.

JAremko commented 8 years ago

Ok I'll rename it and do some of the stuff in the list 2day.

syl20bnr commented 8 years ago

... task done !

JAremko commented 8 years ago

@mkcode I was thinking how to better organize the layer so it will be maximally extensible. What do you think about this ? https://github.com/JAremko/spacemacs-pr/commit/8abdda3c51c30974cef2a4f4b9f3b0e5ea7084ef Removed typographic layer and moved its packages to the layer https://github.com/JAremko/spacemacs-pr/commit/027fff59aea9173b5616ad57c2f379e20c8de56e Will need to work on documentation. Added new packages (WIP) https://github.com/JAremko/spacemacs-pr/commit/4b65fd478b4b0484af8ac47bdf0cb388a8ddc621 spacemacs-language layer has define-word(will be easy to move) and google-translate (we probably can drop it in favor of babel) also it's a lot of code to be moved/removed.

Haven't tested it yet. But should work, in theory. Also not sure what modes should have individual toggles. And if they don't need them we probably should remove their lighters.

JAremko commented 7 years ago

also https://www.emacswiki.org/emacs/BookmarkPlus might be really nice to integrate with all of this. At least mention it in the documentation.

deb0ch commented 7 years ago

I don't understand why Bookmarks+ should be part of this layer ?

Maybe I'm not understanding well the purpose of Bookmarks+ or the purpose of this layer, but I don't see the relation.

JAremko commented 7 years ago

@deb0ch I think the ability to mark your text, visualize and manage marks is a pretty useful feature for a writer.

But It might be not a part of this layer but at least mentioned in the workflow section (We need it for this layer I think)

deb0ch commented 7 years ago

Isn't it also for regular code ?

JAremko commented 7 years ago

Isn't it also for regular code ?

For now I'm pretty much throwing all the potentially related stuff here then (We kinda waiting for flycheck/flycheck#939 I think) we can decide what goes where :smile:

Btw https://www.gnu.org/software/emacs-muse/ and https://github.com/rnkn/fountain-mode/

JAremko commented 7 years ago

Anyway it will be really hard to organize all this. Simply thinking about it makes me procrastinate...

jdriordan commented 7 years ago

Seeing as the flycheck PR for proselint has been open for about a year, maybe in the interim that checker could just be enabled manually?

andrewSteer commented 6 years ago

I see nothing in Spacemacs that I want more than this layer. One question and one suggestion.

Suggestion first: if this layer ever happens to be born, consider this package: http://oremacs.com/2015/05/22/define-word/

Question: is it currently possible to at least use proselint with current version of Spacemacs (for latex files)?

brorbw commented 5 years ago

This would be awesome!

viccuad commented 5 years ago

The proselint flycheck was accepted in flycheck in sept 2017, if one wants to have proselint on some mode on spacemacs, it's just a matter of enabling in whatever modes you want:

;; enable proselint in textual modes:
(add-hook 'markdown-mode-hook #'flycheck-mode)
(add-hook 'text-mode-hook #'flycheck-mode)
(add-hook 'message-mode-hook #'flycheck-mode)
github-actions[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Please let us know if this issue is still valid!

treymerkley commented 4 years ago

Hey first time I've done something good by necroing. Before I used Spacemacs I loved using Textlint to hammer down ideal text. I would love this or a similar feature.

JAremko commented 4 years ago

@travisbhartwell there is https://www.macs.hw.ac.uk/~rs46/posts/2018-12-29-textlint-flycheck.html :thinking:

nixmaniack commented 4 years ago

This is in top 10 issues with respect to number of 👍. So keep this open!

duianto commented 4 years ago

Here are at least two related pending PRs: Add natural layer #6012 Add a layer for LanguageTool support #8899 (they are linked between the previous comments, but this might make them easier to find)

duianto commented 3 years ago

The following PRs changes have been applied to the develop branch: Add a layer for LanguageTool support #8899

hyiltiz commented 3 years ago

Trying to figure out how to use this merged PRs. Anyone got any idea which layers to add and how to configure for which languages, download what dictionary/thesaurus etc.?

real-or-random commented 3 years ago

The layer is called languagetool. Try SPC h l (helm-spacemacs-help-layers).

github-actions[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Please let us know if this issue is still valid!

real-or-random commented 2 years ago

Not sure if this should be closed or not. Languatool is now in but there's more on the wishlist: https://github.com/syl20bnr/spacemacs/issues/5996#issuecomment-219238127

I'm not implying that the entire wishlist needs to be worked on (and this was 6 years ago). Probably someone would need to create a new wishlist with new packages, and then one could see which ones we want and which ones not.

Or if all this is too vague, we could close the issue. But I think the comment is still true -- spacemacs would profit from more sophisticated natural language tools.

github-actions[bot] commented 2 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Please let us know if this issue is still valid!