On 16/01/14 07:07, Tony wrote:
Similar previous post: 
https://groups.google.com/forum/#!searchin/vim_dev/internals/vim_dev/NDfhZs-364M/R1O4gD-uxksJ

This thread was made earlier, but never went everywhere. Sample response:

If you don't just want to spend your time on something you should
also consider talking about the reason causing your interest.

Maybe there are faster ways to solve your problems (if any).

Giving all context is a good idea always.

I don't even know where to begin. And threads asking people to qualify what 
they probably *can't begin to articulate* because, *to fresh eyes*, I dare say, 
the code looks big. What does what?

Even after a few months of peeking in and out of the source.. Is vim's source 
organized hackishly, are VIM's internals worthy of imitation? Is there a 
potential from reorganizing internals in some form in the future?

On the other hand Tony Mechelynck was very helpful in this instance, I'm just sensitive 
to his / core developer's time. I feel left out of the loop, I know others do too. They 
feel they will be greeted with "Why's". Centralized, Internal docs, even in a 
broad sense, would be tremendously constructive.

<blush /> I'm not a "core Vim developer"; in fact AFAIK I'm not a "Vim developer" at all. I've written a small script or two, but Dr. Chip wrote much more than I did, and he goes on fixing them when bugs are found, or staying abreast in changes in Vim; and of the C code I've written exactly zero lines, "zilch, nada, nothing". Bram of course wrote most of it but there are a number of other people who've been fixing bugs in the binary.

I don't feel different from any other Vim user. I've been using Vim since release 6.1 which means I'm neither among the newest nor the oldest players at this game. What I mostly do when I'm around is answering other users' questions, when there is one to which I think I know the answer and which hasn't yet been answered by someone else. And only after sorting all my incoming email, which takes me quite some time even though (summarily) handling spam goes comparatively quite fast.

Yes, it is true that "how to code Vim" is rather sketchily documented compared to "how to use Vim". But OTOH most users' questions turn around "how can I this kind of edit by means of Vim?", not around "where in the code do I find how Vim does that specific thing?" and indeed, the best way not to get "left out of the loop" is to describe some editing task you haven't succeeded to do, even after searching the help (if your question show that you didn't properly search the help, you will still be answered, and not insultingly — we all at one time had trouble finding the help paragraph we needed — but maybe tersely by a short sequence of :help commands telling you where the answer is to be found). In many cases a single editing task can be achieved by means of several different commands or sequences of commands, and IMHO that's part of the beauty of Vim; but I still mean a pragmatic question about a concrete editing task; if you ask "how do I make Vim behave like Emacs?" (or "like MS-Word", for that matter) you're bound to be treated like a troll — i.e., probably left without an answer, or maybe sneered at.

As an example I found very constructive before in open source: AOSA style, and 
take a look at the documentation on the headers of .C files in 
https://github.com/postgres/postgres.

Can someone open a gist / wiki / create an INTERNALS.txt or doc file for 
developers to have a broad overview of how vim works internally?


Hmm, that wouldn't be easy stuff.

I think that those internals which happen by means of Vim scripts (such as: syntax highlighting, keymaps, menus…) are already documented, mostly in the help, sometimes at vim.wikia.com, or maybe both; but the internals of the C (and similar) code, well, well, well, I for sure wouldn't know where to begin, and I'm sure that the people who would know what to say about what have better things to do: Vim is a purely volunteer project, remember, with the possible exception of one day per week Bram gets off from his other chores at Google to let him work on Vim.

And all volunteer projects have one thing in common: NO OBLIGATION. The only way to make sure that a bug gets fixed is to fix it yourself, or, if you don't know how to, to first learn how to and _then_ do it yourself; but getting the necessary knowledge may require resources which aren't there, or not yet, so one RFE or bug report might spawn a number of additional RFEs about developer documentation — and that may take years. Did I say "years"? Maybe "decades" would be closer to the mark. So, yes, me too I'd like to know how Vim works internally, but I don't want it badly enough to follow the execution path (and all its possible branches) all around the source. Do you? Probably not. So I suppose all you or I can do about it is hope, or silently pray, that someday some developer (or, more likely, several of them) will have the good idea to write some good developer documentation about the organization of Vim's C code. If they don't, it doesn't mean we're left out of the loop, it just means there is no "loop", i.e., no one has at the same time the time, the expertise and the willingness to do anything about it.


Best regards,
Tony.
--
There once was a lady from Kansas
Whose cunt was as big as Bonanzas.
        It was nine inches deep
        And the sides were quite steep --
It had whiskers like General Carranza's.

--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- You received this message because you are subscribed to the Google Groups "vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Raspunde prin e-mail lui