rememberyou / emacs-ideas Goto Github PK
View Code? Open in Web Editor NEW🧰 Idea box for package development on GNU Emacs
🧰 Idea box for package development on GNU Emacs
The project is to create a new GNU Emacs package that will sort a buffer
depending on the programming language used. The ultimate goal is that a user
will be able to add a hook to the created mode in different languages
(preferably non-procedural), wishing to be sorted according to their functions,
classes, imports, etc.
The issue with the current sorting functions is that the user has to select the
corresponding regions himself, and these sortings do not always work according
to the formatting of the function documentation and the intermediate lines.
This package will include the following functions [0/7]:
psort-count-not-sorted-classes
: gets the number of classes that need to be
sorted. Defaults to 0.
psort-count-not-sorted-functions
: gets the number of functions that need to be
sorted. Defaults to 0.
psort-count-not-sorted-imports
: gets the number of imports that need to be
sorted. Defaults to 0.
psort-highlight-not-sorted
: allows using a background color, things that need to
be sorted. Defaults to nil.
psort-mode
: launch of the mode. Defaults to nil.
psort-get-sorted-language
: get the name of the buffer language being sorted
(e.g. Python, Java, Lisp, etc.). Defaults to nil.
psort-sort-buffer
: sort the buffer according to the user
configuration. Defaults to nil.
This package will include the following variables [0/8]:
psort-highlight-color
: background color for detecting things to sort with
hightlight-not-sorted
. Defaults to "red".
psort-not-sorting-functions
: a list of special functions that should not be
sorted as the constructors (e.g. init.py in python).
psort-sort-method
: defined the method used to sort (e.g. alphabetically, by
length, etc). Defaults to "alphabetically".
psort-sort-with-classes
: make it possible to know whether sorting should be
done by considering classes or not (practical if several classes are defined
in a file). Defaults to t.
psort-sort-with-imports
: make it possible to know whether sorting should be
done by considering imports or not. Defaults to t.
psort-sorting-time
: Time of last sorting. Defauls to 0.
psort-verbose
: if t, display text each time the psort-sort-buffer
is
called. Display example : "Sorted functions: 5". Defaults to t.
psort-verbose-format
: formatting verbose bode. Useful if you prefer to
display the time it took to sort the functions, or display a different message
than the one initially provided.
imenu
with completing-read replacement that sorts candidates by length.imenu
's quality widly depending on the major mode.Some people on #emacs
and Reddit, talked about how cool it could be to create a tinder mode for GNU Emacs.
For the API, we could take a look at this link: https://gist.github.com/rtt/10403467
This package aims to simplify the process of taking an image and hosting it on a remote service like postImage. Therefore, based on a single function, the user can either make a screenshot of his current buffer, or host a particular image. Similar to webpaste to host its code.
imagemagick
to take the screenshots, already built-in with GNU Emacs.curl
.https://www.emacswiki.org/emacs/ScreenShot
https://superuser.com/questions/777184/upload-image-to-postimage-org-using-curl
emacs-gradle-mode is not maintained anymore. It would be cool to fork this repository or/and start something from scratch by taking inspiration to this package.
One missing feature is the fact that emacs-gradle-mode
can't identifying and reporting on patterns of misuse or deprecations in Gradle scripts (SEE: more here)
All of what gradle
and gradle-lint-plugin
can provide.
All of what gradle
and gradle-lint-plugin
can provide.
Very often I have TODO keywords inside my code base. I make a heavy usage of magit-todos
to show me what TODOs do I have across my code. However, I would love to have those items directly integrated to Org Agenda.
Maybe, I could be more diligent and instead of writing TODOs in my code-base I could be capturing it with a proper org template. However, I have several coworkers that do not use Emacs and they create some TODOs and FIXMEs in the code.
I was thinking about a *-minor-mode
that when enabled would look for TODO itens inside a project.
projectile
This package aims to add some functionality for this idea box to GNU Emacs. We would be able to add ideas in markdown, list them, edit them and comment on them; as well as being able to provide links to local info files and links to (built-in) source code, and possibly example config code. All from our familiar environment.
Do you know hugo for emacs blogging?
I'd like a help hand if possible to set up a blog using hugo, emacs and github or gitlab.
I can set up it up only to my localhost, but I am failing to set up hugo to work with my github/gitlab account.
Here are the steps I have taken:
Of course, I have to uncomment the lines in my
init.el
TODO Ox-hugo
Hugo is better than org2blog
https://gohugo.io/getting-started/quick-start/
https://zzamboni.org/post/my-emacs-configuration-with-commentary/
How to set up hugo:
apt install hugo
then:
cd /org/ and issue
hugo new site blog
cd /org/blog
git init
Then add a theme:
cd /org/blog/themes/
git submodule add https://github.com/budparr/gohugo-theme-ananke.git ananke
cd ..
echo 'theme = "ananke"' >> config.toml
hugo new posts/my-first-post.md
Edit the my-first-post.md
cd /org/blog
then start the server
hugo server -D
open it in:
http://localhost:1313/
in emacs it is "org-hugo"
M-x org-hugo
hash-plus BEGIN_SRC emacs-lisp
;; (use-package ox-hugo
;; :ensure t
;; :after ox)
;; (require 'ox-hugo)
;; (require 'org-hugo-auto-export-mode)
;; (use-package org-capture
;; :ensure nil
;; :config
;; (defun org-hugo-new-subtree-post-capture-template ()
;; ;; "Returns org-capture' template string for new Hugo post. ;; ;; See
org-capture-templates' for more information."
;; (let* ((title (read-from-minibuffer "Post Title: ")) ;Prompt to enter the post title
;; (fname (org-hugo-slug title)))
;; (mapconcat #'identity
;; (,(concat "* TODO " title) ;; ":PROPERTIES:" ;; ,(concat ":EXPORT_HUGO_BUNDLE: " fname) ;; ":EXPORT_FILE_NAME: index" ;; ":END:" ;; "%?\n") ;Place the cursor here finally ;; "\n"))) ;; (add-to-list 'org-capture-templates ;; '("o" ;
org-capture' binding + o
;; "Post"
;; entry
;; ;; It is assumed that below file is present in `org-directory'
;; ;; and that it has an "Ideas" heading. It can even be a
;; ;; symlink pointing to the actual location of all-posts.org!
;; (file+datetree (concat org-directory "~/blog/content/posts/my-post.org")
;; "* TODO %^{Description} %^g\n%?\nAdded: %U")
;; (function org-hugo-new-subtree-post-capture-template))))
hash-plus END_SRC
I find ansi-term
slow compared to other terminator emulators. The idea is to optimize it with some modifications.
http://www.reddit.com/r/vim/comments/30btwx/neovim_now_has_a_full_terminal_emulator_mode_i/
https://github.com/akermu/emacs-libvterm
Some Emacs package use native components, written in C, C++ or any other language, that require building on the user's computer. Such packages include irony-mode, mu4e, pdf-tools, intero and a lot more. The common approach is to use a shell script or ad-hoc elisp to install the dependencies using the adequate method for the running OS and try to produce a binary. This is horrible.
The envisioned library would provide a standard way for packages to expose their native component's dependencies and build system and would handle building and rebuilding
Some basic abstraction over common build systems, at the very least autotools and cmake.
Some basic abstraction over package management, supporting both the "old school method" (apt-get install
) and the Nix/Guix "shell" approach (where the package manager creates a shell with the required packages available)
Some basic abstraction over common dependencies. Eg, Debian's libexpat-dev = Arch's libexpat = nix's expat. Runtime dependencies must be distinguished from compilation deps. Having a stupid database of name equivalences is no big deal and makes things a lot easier for everyone.
(the general rule that ∀x Debian = libX-dev, Arch=libX, Nix=X can be a good start)
Updates support: store the built version and compare with the library's version.
Support for generating binaries and Emacs native modules.
It could look like this:
(require 'whatever-name-you-want-to-give-the-lib)
(declare-native-component your-package-name
:type 'program
:build 'cmake
:lang 'c++ ; must accept a symbol or a list, determines the binding language for deps.
:src "server" ; a subdirectory or your-package-name's root dir
:build-deps '(compiler poppler png zlib)) ;; May be either a list of an alist of (language . deps), so the correct bindings are installed for each language.
From that, the library would create the build environment for the current OS and build the components. Options for installing the components should probably be provided, with reasonable defaults (= just take this binary and put it in your-package-name/bin or /lib
Support for including a simple test could help automate validation of the configuration in all supported OSs and build systems.
Packages with a native component:
Package managers with support for building:
Integrate the fzy fuzzy finder.
As a user, I would like to integrate fzy
with dired
. For example, a simple fuzzy search in the current directory using dired
, should return the corresponding results.
Free to your imagination.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.