zsh-workers
 help / color / mirror / code / Atom feed
From: Sebastian Gniazdowski <psprint@zdharma.org>
To: zsh-workers@zsh.org
Subject: Naive question: how hard are namespaces for functions
Date: Mon, 15 May 2017 10:24:50 +0200	[thread overview]
Message-ID: <etPan.591965d2.3d1b58ba.6b4c@MacMini.local> (raw)

Hello,
writing something sophisticated involves multiple functions. E.g. I have 47 interactive-mode (not at-startup time) functions in Zplugin, to provide things like:

% zplugin csearch  # Search for completions of plugins
[+] is installed, [-] uninstalled, [+-] partially installed
[+] _local/zplugin                      _zplugin
[-] benclark/parallels-zsh-plugin       _parallels
[-] or17191/going_places                _favrm, _goto
[+] psprint/zsh-navigation-tools        _n-kill
[-] tevren/gitfast-zsh-plugin           _git

So one can disable/enable selected completions. This is nice, but it hurts me that compared to zsh -f, $functions here are very populated. I have much free time so I invest it in Zsh, from this experience I can theoretically see Zsh becoming more like e.g. Ruby. Modules can be built outside Zsh source as plugins, I plan to add Oracle DBM module either on Github or in Zsh upstream, there is the fresh zsh/gdbm module (and it loads in just 0.43 ms, according to zprof, so modules are good way to go), I also plan to publish the regex re2 module from Phill as plugin. Then there is ZUI library, I wrote variable browser (https://github.com/zdharma/zbrowse) in 4 hours with it.

The point is: there is growing discomfort that $functions and $parameters tend to get more populated. Database, regex, etc. support can grow, ZUI applications can grow, but it comes down to single bag for all this, single namespace.

Maybe a namespace support at least for $functions can be easily added? Few ready namespaces:

- completions,
- autosuggestions plugin ${#functions[(I)_zsh_autosuggest*]} == 253
- zsh-syntax-highlighting, ${#functions[(I)_zsh_highlight*]} == 250

The point is to make $functions/functions (builtin) usable again. Like it probably was 5-10 years ago when one could use $functions to e.g. find interactively created functions. Now it's impossible.

--
Sebastian Gniazdowski
psprint /at/ zdharma.org


             reply	other threads:[~2017-05-15  8:39 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-15  8:24 Sebastian Gniazdowski [this message]
2017-05-17 14:20 ` Sebastian Gniazdowski
2017-05-17 22:43   ` Bart Schaefer
2017-05-18 10:29     ` Sebastian Gniazdowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=etPan.591965d2.3d1b58ba.6b4c@MacMini.local \
    --to=psprint@zdharma.org \
    --cc=zsh-workers@zsh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).