I have folding set to use expr. I have a foldexpr that
identifies lines for functions and classes in PHP.
Lines that are part of a function are folded.
Function definition lines are NOT folded.
This gives me a single level of folding that works like
an index to my code. This works great.

Is it possible to have an open fold include a few lines BEFORE the
beginning of the fold? For example, it's common in PHP to have a
phpdoc comment before the function definition.
When all folds are closed I see just a list of function names.
When I open a fold I see the entire body of the function, but
I don't see the comment before the function.

I'm sure I could get the fold expression to work so that it starts the
fold on the comment BEFORE the function definition, but then when I closed
the fold I would not see the function name.

Perhaps I could set the fold to start at the comment before the
function definition and set the 'foldtext' to be the
text of the line with the function definition. I shall mull that over.
In the mean time, if anyone has any suggestions or has already done
this then please let me know.

So when I have all folds closed I see my code like this:

    function reverse_zipcode ($zipcode)
    +-- 10 lines: {----------------------------------------------------
    function get_inventory ()
    +-- 28 lines: {----------------------------------------------------
    function delete_inventory ()
    +--  5 lines: {----------------------------------------------------
    function touch_sql ($sql)
    +-- 21 lines: {----------------------------------------------------
    function see_sql ($sql,$fetch_mode=DB_FETCHMODE_OBJECT)
    +-- 20 lines: {-----------------------------------------------------

If I wanted to view "delete_inventory" I would click on the + to open
the fold to see something like this (note how the comment BEFORE
the function is also show):

    function reverse_zipcode ($zipcode)
    +-- 10 lines: {----------------------------------------------------
    function get_inventory ()
    +-- 28 lines: {----------------------------------------------------
    /**
     * This deletes unqualified inventory from t_inventory.
     * The table "inv_delete" is used to find unqualified inventory
     * scheduled for deletion.
     * @see function create_inv_delete
     */
    function delete_inventory ()
    {
        $sql = "DELETE inventory FROM inventory, inv_delete WHERE
    inventory.inventory_id=inv_delete.inventory_id;";
        touch_sql ($sql);
    }
    function touch_sql ($sql)
    +-- 21 lines: {----------------------------------------------------
    function see_sql ($sql,$fetch_mode=DB_FETCHMODE_OBJECT)
    +-- 20 lines: {-----------------------------------------------------

Currently, the best I can do is to show everything below the fold.
This is nice, but the documentation comment remains hidden, like this:

    function reverse_zipcode ($zipcode)
    +-- 10 lines: {----------------------------------------------------
    function get_inventory ()
    +-- 28 lines: {----------------------------------------------------
    function delete_inventory ()
    {
        $sql = "DELETE inventory FROM inventory, inv_delete WHERE
    inventory.inventory_id=inv_delete.inventory_id;";
        touch_sql ($sql);
    }
    function touch_sql ($sql)
    +-- 21 lines: {----------------------------------------------------
    function see_sql ($sql,$fetch_mode=DB_FETCHMODE_OBJECT)
    +-- 20 lines: {-----------------------------------------------------

Yours,
Noah


Reply via email to