From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Artur Malabarba Newsgroups: gmane.emacs.devel Subject: Adding a few more finder keywords Date: Sat, 25 Apr 2015 17:59:33 +0100 Message-ID: Reply-To: bruce.connor.am@gmail.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Trace: ger.gmane.org 1429981468 667 80.91.229.3 (25 Apr 2015 17:04:28 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 25 Apr 2015 17:04:28 +0000 (UTC) To: emacs-devel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Apr 25 19:04:28 2015 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Ym3VC-0001qf-Pt for ged-emacs-devel@m.gmane.org; Sat, 25 Apr 2015 19:04:27 +0200 Original-Received: from localhost ([::1]:48938 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ym3VC-0007Uj-42 for ged-emacs-devel@m.gmane.org; Sat, 25 Apr 2015 13:04:26 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:49943) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ym3V7-0006nO-2A for emacs-devel@gnu.org; Sat, 25 Apr 2015 13:04:22 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ym3QU-0000NB-JQ for emacs-devel@gnu.org; Sat, 25 Apr 2015 12:59:36 -0400 Original-Received: from mail-la0-x229.google.com ([2a00:1450:4010:c03::229]:33899) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ym3QU-0000Mx-6A for emacs-devel@gnu.org; Sat, 25 Apr 2015 12:59:34 -0400 Original-Received: by laat2 with SMTP id t2so54621363laa.1 for ; Sat, 25 Apr 2015 09:59:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:sender:date:message-id:subject:from:to :content-type; bh=OEl9a37hu7A+jKnaZgSZFJP20GZ+uSl1YRS93sEAkN0=; b=cq3oQdFSxzq6YdUAsD9X36NwBnuIfj7qc1+V6H58LWdQ5TTX62TKd2BuuLQbIgE3Vx WxIQk3bEZhTbZOm8+PqLe5EgLIdZDIBfZTwlxd3o56aDKbtZ1drA7vG0EHfivT+rpqeD BcL9wp7LLHWfftVzVyc7k+Bcfr1gaBcOtJPorhNcEyLvYyBJuH8Y8ZaTnJfhAQrN9Sn4 Vyz/G/gdEeIpqJMzzlWSBr5rna2Ukm97t1Jg7ouqN8b37WJCrlFZpUv5KHF8yq52TIWH 7itpwiCPvTWw1CxfTW35lHcpnIBrMje5TKboQcX+38Mx6E9Ri1qVTOXLVtOibW4I4kRE FMAQ== X-Received: by 10.112.25.69 with SMTP id a5mr3342303lbg.16.1429981173066; Sat, 25 Apr 2015 09:59:33 -0700 (PDT) Original-Received: by 10.25.150.1 with HTTP; Sat, 25 Apr 2015 09:59:33 -0700 (PDT) X-Google-Sender-Auth: d8tDUZxs08IqvoJf0au6Ma2acwc X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2a00:1450:4010:c03::229 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:185879 Archived-At: 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 )