mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2026-09-10 07:46:51 -04:00
Use variables ses-row and ses-col for dynamic binding.
* doc/misc/ses.texi:
* doc/translations/fr/misc/ses-fr.texi (Local printer functions)
(Customizing @acronym{SES}, Nonrelocatable references): Document
ses-row & ses-col dynamic binding.
* lisp/ses.el (ses-after-entry-functions): Document
ses-row & ses-col dynamic binding.
(ses-calculate-cell, ses-read-cell, ses-read-symbol): dlet
`ses-row' and `ses-col' to current cell coordinates.
(ses-read-cell, ses-read-symbol): Run ses-after-entry-functions
with `run-hook-with-args'.
This commit is contained in:
parent
77dbc2e362
commit
d81505a3eb
|
|
@ -570,7 +570,7 @@ If you replace command @code{ses-define-local-printer} by function
|
|||
the definition will occur only if a local printer with the same name
|
||||
in not already defined.
|
||||
|
||||
Variables @code{ses--row} and @code{ses--col} are dynamically set to the
|
||||
Variables @code{ses-row} and @code{ses-col} are dynamically set to the
|
||||
coordinates of the current cell, so that you may have the output depend
|
||||
not only of the cell's content, but as well of its position.
|
||||
|
||||
|
|
@ -770,7 +770,7 @@ which moves point right to the next cell@c TODO propagate extra
|
|||
@c version. . You can
|
||||
customize hook @code{ses-after-entry-functions} to move left or up or
|
||||
down. For diagonal movement, select two functions from the
|
||||
list. @code{ses--row} and @code{ses--col} are dynamically bound to
|
||||
list. @code{ses-row} and @code{ses-col} are dynamically bound to
|
||||
current cell coordinates, so by having your own movement function in
|
||||
this hook you may make cursor movement depending on the cell
|
||||
coordinates. For instance define:
|
||||
|
|
@ -778,9 +778,9 @@ coordinates. For instance define:
|
|||
@example
|
||||
(defun my-ses-after-entry-hook (arg)
|
||||
(cond
|
||||
((= 0 ses--col)
|
||||
((= 0 ses-col)
|
||||
(forward-char arg))
|
||||
((= 1 ses--col)
|
||||
((= 1 ses-col)
|
||||
(backward-char arg)
|
||||
(next-line arg))
|
||||
(t
|
||||
|
|
@ -1295,10 +1295,10 @@ recorded as a dependency of this cell, so this cell will not be
|
|||
updated automatically when @samp{B3} is changed, this is why using
|
||||
@code{ses-rename-cell} is most of the time preferable.
|
||||
|
||||
The variables @code{ses--row} and @code{ses--col} are dynamically bound
|
||||
The variables @code{ses-row} and @code{ses-col} are dynamically bound
|
||||
while a cell formula is being evaluated. You can use
|
||||
@lisp
|
||||
(ses-cell-value row 0)
|
||||
(ses-cell-value ses-row 0)
|
||||
@end lisp
|
||||
to get the value from the leftmost column in the current row. This
|
||||
kind of dependency is also not recorded.
|
||||
|
|
|
|||
|
|
@ -640,7 +640,7 @@ fonction @code{ses-define-if-new-local-printer}
|
|||
la définition ne se produira que si aucune fonction d’impression de
|
||||
même nom n’est déjà définie.
|
||||
|
||||
Les variables @code{ses--row} et @code{ses--col} sont dynamiquement
|
||||
Les variables @code{ses-row} et @code{ses-col} sont dynamiquement
|
||||
réglées aux coordonnées de la cellule courante pendant l'évaluation de
|
||||
la fonction d'impression, de sorte que vous pouvez faire dépendre la
|
||||
sortie non seulement du contenu de la cellule mais aussi de sa position.
|
||||
|
|
@ -860,7 +860,7 @@ ou à la première cellule à gauche de la ligne suivante si la cellule
|
|||
courante est la plus à droite de la feuille. Vous pouvez personnaliser
|
||||
@code{ses-after-entry-functions} pour que le déplacement soit vers la
|
||||
gauche ou le haut ou le bas. Pour un mouvement diagonal, selectionnez
|
||||
deux fonctions de la liste. @code{ses--row} et @code{ses--col} sont
|
||||
deux fonctions de la liste. @code{ses-row} et @code{ses-col} sont
|
||||
dynamiquement réglées aux coordonnées de la cellule coutante, de sorte
|
||||
qu'en ayant votre propre fonction de mouvement dans ce crochet vous
|
||||
pouvez rendre le mouvement du curseur dépendant des coordonnées de la
|
||||
|
|
@ -869,9 +869,9 @@ cellule. Par exemple définissez :
|
|||
@example
|
||||
(defun mon-crochet-post-saisie-ses (arg)
|
||||
(cond
|
||||
((= 0 ses--col)
|
||||
((= 0 ses-col)
|
||||
(forward-char arg))
|
||||
((= 1 ses--col)
|
||||
((= 1 ses-col)
|
||||
(backward-char arg)
|
||||
(next-line arg))
|
||||
(t
|
||||
|
|
@ -1462,11 +1462,11 @@ cellule ne sera pas mise à jour automatiquement quand @samp{B3} est
|
|||
modifiée, c’est pourquoi l’usage de @code{ses-rename-cell} est la
|
||||
plupart du temps préférable.
|
||||
|
||||
Les variables @code{ses--row} et @code{ses--col} sont liées
|
||||
dynamiquement pendant l’évaluation d’une formule de cellule. Vous pouvez
|
||||
utiliser
|
||||
Les variables @code{ses-row} et @code{ses-col} sont réglées
|
||||
dynamiquement pendant l’évaluation d’une formule de cellule aux
|
||||
coordonnées de celle-ci. Vous pouvez utiliser
|
||||
@lisp
|
||||
(ses-cell-value row 0)
|
||||
(ses-cell-value ses-row 0)
|
||||
@end lisp
|
||||
pour obtenir la valeur de la colonne la plus à gauche de la ligne
|
||||
courante. Ce type de dépendance n’est pas non plus enregistré.
|
||||
|
|
|
|||
14
lisp/ses.el
14
lisp/ses.el
|
|
@ -102,7 +102,7 @@
|
|||
"Things to do after entering a value into a cell.
|
||||
An abnormal hook that usually runs a cursor-movement function.
|
||||
Each function is called with ARG=1.
|
||||
Variables `ses--row' and `ses--col' are dynamically bound to cell
|
||||
Variables `ses-row' and `ses-col' are dynamically bound to cell
|
||||
coordinates during hook call."
|
||||
:type 'hook
|
||||
:options '(forward-char backward-char next-line previous-line))
|
||||
|
|
@ -1007,8 +1007,8 @@ the old and FORCE is nil."
|
|||
(setq formula (ses-safe-formula (cadr formula)))
|
||||
(ses-set-cell row col 'formula formula))
|
||||
(condition-case sig
|
||||
(setq newval (let ((ses--row row)
|
||||
(ses--col col))
|
||||
(setq newval (dlet ((ses-row row)
|
||||
(ses-col col))
|
||||
(eval formula t)))
|
||||
(error
|
||||
;; Variable `sig' can't be nil.
|
||||
|
|
@ -2588,8 +2588,8 @@ Return nil if cell formula was unsafe and user declined confirmation."
|
|||
curval)))))))
|
||||
(when (ses-edit-cell row col newval)
|
||||
(ses-command-hook) ; Update cell widths before movement.
|
||||
(let ((ses--row row)
|
||||
(ses--col col))
|
||||
(dlet ((ses-row row)
|
||||
(ses-col col))
|
||||
(run-hook-with-args 'ses-after-entry-functions 1))))
|
||||
|
||||
(defun ses-read-symbol (row col symb)
|
||||
|
|
@ -2609,8 +2609,8 @@ spreadsheet is available for completions."
|
|||
(list 'quote (intern newval))))))
|
||||
(when (ses-edit-cell row col symb)
|
||||
(ses-command-hook) ; Update cell widths before movement.
|
||||
(let ((ses--row row)
|
||||
(ses--col col))
|
||||
(dlet ((ses-row row)
|
||||
(ses-col col))
|
||||
(run-hook-with-args 'ses-after-entry-functions 1))))
|
||||
|
||||
(defun ses-clear-cell-forward (count)
|
||||
|
|
|
|||
Loading…
Reference in a new issue