Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Things I miss (a lot!) in Lem #413

Open
svetlyak40wt opened this issue Aug 26, 2019 · 11 comments
Open

Things I miss (a lot!) in Lem #413

svetlyak40wt opened this issue Aug 26, 2019 · 11 comments

Comments

@svetlyak40wt
Copy link
Contributor

svetlyak40wt commented Aug 26, 2019

Today I've tried to use Lem for work on one of my pet projects. Here is the list of things I was lacking to be productive:

Table of Contents

  1. Things I miss (a lot!) in Lem
    1. A ChangeLog.md
    2. Bindings
      1. C-c ~ (or C-c v) repl-sync to syncronize current package
      2. (DONE) C-w to delete previous word
      3. (DONE) Undo is not bound to C-/
      4. Paredit should indent line after the new-line
      5. Something like C-u C-Space or pop-global-mark
      6. C-s C-w - to search thing a point
      7. Double C-s should start searching a previous term
      8. C-c x to export symbol at point (as in SLY)
    3. Gotchas
      1. Unable to start Lem's lisp repl when you already connected to other Lisp process and have a REPL
      2. Lisp-mode should kee history between restarts
      3. Grep should search in the whole project
      4. C-u C-c C-c should compile defun with (optimize (debug 3) (safety 3) (speed 0))
    4. Modes
      1. Package Manager
      2. Lispy-mode
      3. Bookmarks
      4. Org-Mode
      5. (STARTED) Magit
      6. Helm
      7. (STARTED) Projectile (with helm integration)
      8. (STARTED) YaSnippet

Things I miss (a lot!) in Lem

A ChangeLog.md

Bindings

C-c ~ (or C-c v) repl-sync to syncronize current package

DONE C-w to delete previous word

  • State "DONE" from [2019-08-26 Mon 09:27]

(Can be bound to backward-delete-word

DONE Undo is not bound to C-/

  • State "DONE" from [2019-08-26 Mon 19:54]

Paredit should indent line after the new-line

Something like C-u C-Space or pop-global-mark

to jump to the previous place where cusor was. Like bm-toggle function
from Gnu Emacs.

With prefix argument (e.g., \\[universal-argument] \\[set-mark-command]), \
jump to the mark, and set the mark from
position popped off the local mark ring (this does not affect the global
mark ring). Use \\[pop-global-mark] to jump to a mark popped off the global
mark ring (see `pop-global-mark').

C-s C-w - to search thing a point

There is a function isearch-forward-symbol-at-point

Double C-s should start searching a previous term

C-c x to export symbol at point (as in SLY)

Gotchas

Unable to start Lem's lisp repl when you already connected to other Lisp process and have a REPL

Lisp-mode should keep history between restarts

Probably…

Grep should search in the whole project

I don't know where it searches, but only not in my project's root :(

Should work like helm-projectile-ag or helm-projectile-grep.

C-u C-c C-c should compile defun with (optimize (debug 3) (safety 3) (speed 0))

Modes

Package Manager

Lispy-mode

Bookmarks

Org-Mode

(STARTED) Magit

Helm

(STARTED) Projectile (with helm integration)

(STARTED) YaSnippet

@svetlyak40wt
Copy link
Contributor Author

I hope these things will be solved someday. We should do a lot of work to make Lem a really feature full IDE for CL.

If somebody has his own list of "missing features", I'd like to learn about them.

@snmsts
Copy link
Member

snmsts commented Aug 27, 2019

What do you mean by package manager?

@svetlyak40wt
Copy link
Contributor Author

What do you mean by package manager?

I mean a way to discover and install third-party extesions (modes). Something like Gnu Emacs's M-x list-packages.

For example, I want to port a lispy-mode to lem. What do I need to to to make it available to all other Lem's users?

svetlyak40wt added a commit to svetlyak40wt/lem that referenced this issue Jan 13, 2020
This section will list an external contribs which are not available from Lem repository.

We can remove this list when the [package manager](lem-project#413 (comment)) will be available in Lem.
@svetlyak40wt
Copy link
Contributor Author

Implemented a subset of the Lispy's functionality in the Pareto mode.

@svetlyak40wt
Copy link
Contributor Author

By the way, probably, the package manager can use Ultralisp's API, to list all systems, tagged as lem. However, the tagging should be added to the Ultralisp.org first.

@vindarel
Copy link
Collaborator

vindarel commented Jun 14, 2023

Projectile

A few project-related commands were added 🚀

https://lem-project.github.io/lem-page/usage/usage/#find-file-in-project

M-x project-find-file

with auto-completion of a shrinking list, not far from Helm.

M-x project-delete-buffers, project-directory

C-x d (M-x filer) opens a tree view on the left at the project root

We can fix grep to search on the project root.

under src/commands/project.lisp.


edit: M-x project-switch was added (C-x p p).

@rajcspsg
Copy link

treemacs, centaur tabs

@vindarel
Copy link
Collaborator

vindarel commented Jun 14, 2023

treemacs

There's M-x filer (C-x d) added after Lem 2.0, a project file viewer (not managing many projects).

https://lem-project.github.io/lem-page/usage/usage/#filer

(Sure it's simpler, the base is here)

(edit) with the comment below I learned about tabs: M-x toggle-tabbar.

@Sasanidas
Copy link
Member

treemacs, centaur tabs

There are tabs already, but not as polish as centaur tabs 👍

@vindarel
Copy link
Collaborator

Magit

A Magit-like interface was added: https://github.com/lem-project/lem/blob/main/extensions/legit/README.md

M-x legit-status

presentation and implementation details: https://lisp-journey.gitlab.io/blog/oh-no-i-started-a-magit-like-plugin-for-the-lem-editor/

@vindarel
Copy link
Collaborator

yasnipet

not dissimilar: inserting templates #1282

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants