emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Adding a few more finder keywords


From: Artur Malabarba
Subject: Adding a few more finder keywords
Date: Sat, 25 Apr 2015 17:59:33 +0100

Would it be acceptable for us to add a few more keywords to
`finder-known-keywords'?

There are lots of new keywords being used by the thousands of packages
out there, and some of them are a little chaotic (see below). I think
it would help a bit if we added the most common ones to
`finder-known-keywords'.

The list of keywords below was obtained with the following code (note
that it depends on map.el).

    (defvar kwd-pkg-table (make-hash-table :test #'equal :size 2000))
    (package-read-all-archive-contents)
    (package--mapc
     (lambda (desc)
       (dolist (key (package-desc--keywords desc))
         (cl-pushnew (package-desc-name desc) (gethash key accum)))))

    (defvar kwd-pkg-sorted-alist
      (sort (map-into kwd-pkg-table 'list)
            (lambda (x y) (> (length (cdr x))
                        (length (cdr y))))))

    (pp (mapcar (lambda (p) (cons (car p) (length (cdr p)))) kwd-pkg-alist)
        (current-buffer))

Note how the list contains:
- 17 "theme" and 18 "themes".
- 8 "package" and 4 "packages" (and many other instances of singular vs plural)
- "mode-line", "modeline", "mode line", and even "stausline".
- 4 "major" and 4 "major-mode"

I think this situation can be improved if we extend the list of
default keywords. So a new developer, writing his first package,
doesn't have to decide between "theme" or "themes" (one of them will
already be offerd to them in the defaults).

I'm not suggesting we impose any kind of restriction here. Everyone
will still be free to use whatever keywords they want. All I'm
suggesting is that we add a few more entries to the variable
`finder-known-keywords'


Cheers, (data below)

----------------------

(("convenience" . 387)
 ("tools" . 166)
 ("languages" . 148)
 ("lisp" . 91)
 ("extensions" . 89)
 ("faces" . 59)
 ("files" . 41)
 ("org" . 40)
 ("completion" . 39)
 ("processes" . 36)
 ("helm" . 36)
 ("matching" . 35)
 ("help" . 34)
 ("git" . 30)
 ("comm" . 30)
 ("data" . 28)
 ("frames" . 28)
 ("ruby" . 28)
 ("wp" . 25)
 ("emacs" . 24)
 ("evil" . 24)
 ("vc" . 23)
 ("search" . 22)
 ("local" . 22)
 ("hypermedia" . 21)
 ("internal" . 21)
 ("color" . 20)
 ("c" . 20)
 ("python" . 19)
 ("project" . 19)
 ("themes" . 18)
 ("abbrev" . 18)
 ("games" . 18)
 ("theme" . 17)
 ("multimedia" . 17)
 ("dired" . 17)
 ("emulation" . 16)
 ("clojure" . 16)
 ("docs" . 16)
 ("org-mode" . 16)
 ("window" . 15)
 ("unix" . 15)
 ("editing" . 15)
 ("outlines" . 15)
 ("calendar" . 14)
 ("navigation" . 14)
 ("highlight" . 14)
 ("programming" . 13)
 ("text" . 13)
 ("javascript" . 13)
 ("mode" . 13)
 ("test" . 13)
 ("language" . 12)
 ("mouse" . 11)
 ("keys" . 11)
 ("php" . 11)
 ("grep" . 10)
 ("unicode" . 10)
 ("html" . 10)
 ("buffer" . 10)
 ("perl" . 10)
 ("mode-line" . 9)
 ("cursor" . 9)
 ("region" . 9)
 ("rails" . 9)
 ("interface" . 9)
 ("package" . 8)
 ("tex" . 8)
 ("keyboard" . 8)
 ("mail" . 8)
 ("maint" . 8)
 ("news" . 8)
 ("elisp" . 8)
 ("emulations" . 8)
 ("auto-complete" . 8)
 ("testing" . 8)
 ("tests" . 8)
 ("development" . 8)
 ("flymake" . 8)
 ("frame" . 8)
 ("shell" . 8)
 ("xml" . 7)
 ("network" . 7)
 ("edit" . 7)
 ("http" . 7)
 ("cider" . 7)
 ("java" . 7)
 ("dictionary" . 7)
 ("anything" . 7)
 ("web" . 7)
 ("chinese" . 7)
 ("vim" . 7)
 ("terminal" . 7)
 ("i18n" . 7)
 ("configuration" . 7)
 ("markdown" . 6)
 ("indentation" . 6)
 ("regexp" . 6)
 ("css" . 6)
 ("latex" . 6)
 ("bibtex" . 6)
 ("github" . 6)
 ("snippets" . 6)
 ("menu" . 6)
 ("utility" . 6)
 ("c++" . 6)
 ("go" . 6)
 ("repl" . 6)
 ("haskell" . 6)
 ("characters" . 6)
 ("markup" . 6)
 ("productivity" . 6)
 ("presentation" . 6)
 ("table" . 6)
 ("window manager" . 6)
 ("tree" . 5)
 ("display" . 5)
 ("replace" . 5)
 ("projectile" . 5)
 ("compilation" . 5)
 ("face" . 5)
 ("blog" . 5)
 ("buffers" . 5)
 ("windows" . 5)
 ("nrepl" . 5)
 ("command" . 5)
 ("accessibility" . 5)
 ("popup" . 5)
 ("paste" . 5)
 ("directories" . 5)
 ("hide" . 5)
 ("repeat" . 5)
 ("erc" . 5)
 ("emms" . 5)
 ("osx" . 5)
 ("babel" . 5)
 ("oop" . 5)
 ("speed" . 5)
 ("ssh" . 4)
 ("config" . 4)
 ("packages" . 4)
 ("input" . 4)
 ("clojurescript" . 4)
 ("maven" . 4)
 ("gnus" . 4)
 ("todo" . 4)
 ("ascii" . 4)
 ("symbols" . 4)
 ("dark" . 4)
 ("rest" . 4)
 ("jump" . 4)
 ("projects" . 4)
 ("whitespace" . 4)
 ("ess" . 4)
 ("wiki" . 4)
 ("major" . 4)
 ("major-mode" . 4)
 ("database" . 4)
 ("cycle" . 4)
 ("pastebin" . 4)
 ("refactoring" . 4)
 ("eshell" . 4)
 ("etags" . 4)
 ("tags" . 4)
 ("vim-emulation" . 4)
 ("flycheck" . 4)
 ("compile" . 4)
 ("sql" . 4)
 ("minibuffer" . 4)
 ("environment" . 4)
 ("session" . 4)
 ("intellisense" . 4)
 ("sage" . 4)
 ("math" . 4)
 ("ido" . 4)
 ("ocaml" . 4)
 ("w3m" . 3)
 ("strings" . 3)
 ("hex" . 3)
 ("rgb" . 3)
 ("bbdb" . 3)
 ("highlighting" . 3)
 ("less" . 3)
 ("color-theme" . 3)
 ("learning" . 3)
 ("apropos" . 3)
 ("backup" . 3)
 ("csv" . 3)
 ("macro" . 3)
 ("terminals" . 3)
 ("cursors" . 3)
 ("graph" . 3)
 ("file" . 3)
 ("postgresql" . 3)
 ("toggle" . 3)
 ("discover" . 3)
 ("line" . 3)
 ("selection" . 3)
 ("string" . 3)
 ("elscreen" . 3)
 ("soundcloud" . 3)
 ("unittest" . 3)
 ("ert" . 3)
 ("uml" . 3)
 ("searching" . 3)
 ("textmate" . 3)
 ("comment" . 3)
 ("thing" . 3)
 ("functions" . 3)
 ("music" . 3)
 ("workspace" . 3)
 ("kill" . 3)
 ("management" . 3)
 ("images" . 3)
 ("mac" . 3)
 ("folding" . 3)
 ("refactor" . 3)
 ("log" . 3)
 ("irc" . 3)
 ("utilities" . 3)
 ("writing" . 3)
 ("simplenote" . 3)
 ("chat" . 3)
 ("tdd" . 3)
 ("button" . 3)
 ("widget" . 3)
 ("virtualenv" . 3)
 ("automation" . 3)
 ("server" . 3)
 ("persistence" . 3)
 ("async" . 3)
 ("deferred" . 3)
 ("translation" . 3)
 ("dotemacs" . 3)
 ("yasnippet" . 3)
 ("slime" . 3)
 ("startup" . 3)
 ("yaml" . 2)
 ("rpc" . 2)
 ("www" . 2)
 ("history" . 2)
 ("palette" . 2)
 ("data structures" . 2)
 ("gnuplot" . 2)
 ("plotting" . 2)
 ("lists" . 2)
 ("location" . 2)
 ("motion" . 2)
 ("parser" . 2)
 ("data structures trie" . 2)
 ("register" . 2)
 ("minor-mode" . 2)
 ("context" . 2)
 ("ada" . 2)
 ("emmet" . 2)
 ("bootstrap" . 2)
 ("comments" . 2)
 ("deftheme" . 2)
 ("occur" . 2)
 ("amd" . 2)
 ("fun" . 2)
 ("json" . 2)
 ("api" . 2)
 ("milkode" . 2)
 ("keyword" . 2)
 ("download" . 2)
 ("bittorrent" . 2)
 ("lua" . 2)
 ("fingers" . 2)
 ("modal" . 2)
 ("workman" . 2)
 ("bookmark" . 2)
 ("bookmarks" . 2)
 ("url" . 2)
 ("blogger" . 2)
 ("macros" . 2)
 ("chef" . 2)
 ("font" . 2)
 ("coffee-mode" . 2)
 ("company" . 2)
 ("documentation" . 2)
 ("grads" . 2)
 ("script" . 2)
 ("cypher" . 2)
 ("of" . 2)
 ("diredp" . 2)
 ("sort" . 2)
 ("pastie" . 2)
 ("dropbox" . 2)
 ("e2wm" . 2)
 ("eldoc" . 2)
 ("evernote" . 2)
 ("applescript" . 2)
 ("english" . 2)
 ("grammar" . 2)
 ("r" . 2)
 ("tag" . 2)
 ("tab" . 2)
 ("leader" . 2)
 ("paredit" . 2)
 ("smartparens" . 2)
 ("tabs" . 2)
 ("desktop" . 2)
 ("hsv" . 2)
 ("hexadecimal" . 2)
 ("menus" . 2)
 ("cli" . 2)
 ("zsh" . 2)
 ("d" . 2)
 ("jshint" . 2)
 ("vala" . 2)
 ("movement" . 2)
 ("fullscreen" . 2)
 ("gerrit" . 2)
 ("version control" . 2)
 ("release management" . 2)
 ("gnome" . 2)
 ("hardware" . 2)
 ("template" . 2)
 ("graphviz" . 2)
 ("dot" . 2)
 ("marking" . 2)
 ("bib" . 2)
 ("project-management" . 2)
 ("scss" . 2)
 ("google" . 2)
 ("browse" . 2)
 ("hg" . 2)
 ("show" . 2)
 ("tail" . 2)
 ("light" . 2)
 ("emulating" . 2)
 ("password" . 2)
 ("fringe" . 2)
 ("mongodb" . 2)
 ("data structure" . 2)
 ("io" . 2)
 ("isearch" . 2)
 ("invisible" . 2)
 ("libraries" . 2)
 ("mallard" . 2)
 ("workspaces" . 2)
 ("extentions" . 2)
 ("narrow" . 2)
 ("view" . 2)
 ("nyan" . 2)
 ("cat" . 2)
 ("lulz" . 2)
 ("browser" . 2)
 ("literate programming" . 2)
 ("reproducible research" . 2)
 ("notes" . 2)
 ("jekyll" . 2)
 ("filtering" . 2)
 ("asciidoc" . 2)
 ("restructuredtext" . 2)
 ("pcomplete" . 2)
 ("switch" . 2)
 ("speedbar" . 2)
 ("check" . 2)
 ("rcirc" . 2)
 ("layout" . 2)
 ("scala" . 2)
 ("yank" . 2)
 ("plain text" . 2)
 ("find" . 2)
 ("remember" . 2)
 ("spell" . 2)
 ("sphinx" . 2)
 ("comms" . 2)
 ("swoop" . 2)
 ("inner" . 2)
 ("thesaurus" . 2)
 ("spelling" . 2)
 ("timer" . 2)
 ("minor mode" . 2)
 ("time" . 2)
 ("toml" . 2)
 ("tramp" . 2)
 ("vagrant" . 2)
 ("visual" . 2)
 ("feedback" . 2)
 ("external" . 2)
 ("lines" . 2)
 ("wikipedia" . 2)
 ("cut" . 2)
 ("copy" . 2)
 ("window-configuration" . 2)
 ("ahk" . 2)
 ("autohotkey" . 2)
 ("hotkey" . 2)
 ("keyboard shortcut" . 2)
 ("elixir" . 2)
 ("message" . 2)
 ("exuberant ctags" . 2)
 ("auto" . 2)
 ("client" . 2)
 ("internet" . 2)
 ("c#" . 2)
 ("imenu" . 2)
 ("killing" . 2)
 ("code" . 2)
 ("elpa" . 2)
 ("emacswiki" . 2)
 ("emacs-lisp" . 2)
 ("mpv" . 2)
 ("profile" . 2)
 ("mnemonic" . 2)
 ("gitlab" . 2)
 ("resizing" . 2)
 ("gemfile" . 2)
 ("usability" . 2)
 ("tooltip" . 2)
 ("tool" . 2)
 ("csharp" . 2)
 ("magit" . 2)
 ("publish" . 2)
 ("twitter" . 2)
 ("library" . 2)
 ("applications" . 2)
 ("solar" . 2)
 ("sunrise" . 2)
 ("sunset" . 2)
 ("rspec" . 2)
;;; keywords with a count of 1 are omitted. Run the code to se them
)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]