[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/csv-mode 8824a58 30/34: * packages/csv-mode/csv-mode.el
From: |
Stefan Monnier |
Subject: |
[elpa] externals/csv-mode 8824a58 30/34: * packages/csv-mode/csv-mode.el: New TAB/backtab commands |
Date: |
Sun, 29 Nov 2020 18:46:18 -0500 (EST) |
branch: externals/csv-mode
commit 8824a58ff43b46443d62c957fe223c3c85e681da
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>
* packages/csv-mode/csv-mode.el: New TAB/backtab commands
(csv-tab-command, csv-backtab-command): New commands.
(csv-mode-map): Bind them.
(csv-end-of-field, csv-beginning-of-field): Obey csv-field-quotes.
---
csv-mode.el | 32 +++++++++++++++++++++++++-------
1 file changed, 25 insertions(+), 7 deletions(-)
diff --git a/csv-mode.el b/csv-mode.el
index d8302b4..798d8a9 100644
--- a/csv-mode.el
+++ b/csv-mode.el
@@ -1,10 +1,10 @@
;;; csv-mode.el --- Major mode for editing comma/char separated values -*-
lexical-binding: t -*-
-;; Copyright (C) 2003, 2004, 2012-2019 Free Software Foundation, Inc
+;; Copyright (C) 2003, 2004, 2012-2020 Free Software Foundation, Inc
;; Author: "Francis J. Wright" <F.J.Wright@qmul.ac.uk>
;; Maintainer: emacs-devel@gnu.org
-;; Version: 1.10
+;; Version: 1.11
;; Package-Requires: ((emacs "24.1") (cl-lib "0.5"))
;; Keywords: convenience
@@ -273,6 +273,8 @@ Number of spaces used by `csv-align-mode' and
`csv-align-fields' after separator
(define-key map [(control ?c) (control ?r)] 'csv-reverse-region)
(define-key map [(control ?c) (control ?n)] 'csv-sort-numeric-fields)
(define-key map [(control ?c) (control ?s)] 'csv-sort-fields)
+ (define-key map "\t" #'csv-tab-command)
+ (define-key map [backtab] #'csv-backtab-command)
map))
;;;###autoload
@@ -657,17 +659,17 @@ point or marker arguments, BEG and END, delimiting the
region."
;;; Moving by field
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(defsubst csv-end-of-field ()
+(defun csv-end-of-field ()
"Skip forward over one field."
(skip-chars-forward " ")
- (if (eq (char-syntax (following-char)) ?\")
+ (if (memq (char-syntax (following-char)) csv-field-quotes)
(goto-char (scan-sexps (point) 1)))
(skip-chars-forward csv--skip-chars))
-(defsubst csv-beginning-of-field ()
+(defun csv-beginning-of-field ()
"Skip backward over one field."
(skip-syntax-backward " ")
- (if (eq (char-syntax (preceding-char)) ?\")
+ (if (memq (char-syntax (preceding-char)) csv-field-quotes)
(goto-char (scan-sexps (point) -1)))
(skip-chars-backward csv--skip-chars))
@@ -704,9 +706,25 @@ move forward across N fields."
(if (memq (preceding-char) csv-separator-chars) (backward-char))
(csv-beginning-of-field))))
+(defun csv-tab-command ()
+ "Skip to the next field on the same line.
+Create a new field at end of line, if needed."
+ (interactive)
+ (skip-chars-forward csv--skip-chars)
+ (if (eolp)
+ (insert (car csv-separators))
+ (forward-char 1)))
+
+(defun csv-backtab-command ()
+ "Skip to the beginning of the previous field."
+ (interactive)
+ (skip-chars-backward csv--skip-chars)
+ (forward-char -1)
+ (skip-chars-backward csv--skip-chars))
+
(defun csv-sort-skip-fields (n &optional yank)
"Position point at the beginning of field N on the current line.
-Fields are separated by `csv-separators'\; null terminal field allowed.
+Fields are separated by `csv-separators'; null terminal field allowed.
Assumes point is initially at the beginning of the line.
YANK non-nil allows N to be greater than the number of fields, in
which case extend the record as necessary."
- [elpa] externals/csv-mode 8c5ea6a 14/34: * csv-mode, landmark: Fix maintainer's email, (continued)
- [elpa] externals/csv-mode 8c5ea6a 14/34: * csv-mode, landmark: Fix maintainer's email, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode 08ee1af 09/34: * csv-mode.el (csv-kill-one-field): Check for presence before deleting trailing, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode 7e5e6bd 29/34: * packages/csv-mode/csv-mode.el (csv-align--cursor-truncated): Fix C-e case, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode f5de789 27/34: * packages/csv-mode/csv-mode.el: More cvs-align-mode improvements, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode 0207304 33/34: * packages/csv-mode/csv-mode.el: Bump version number, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode c5e179b 20/34: * packages/csv-mode/csv-mode.el: Add tsv-mode and csv-align-fields-mode, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode de4d1e6 24/34: packages/csv-mode/csv-mode.el: Fix csv-align-fields doc, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode ac35a9f 23/34: * packages/csv-mode/csv-mode.el: Remove Francis as maintainer, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode b585892 22/34: * packages/csv-mode/csv-mode.el (csv-align-field-max-width): New var, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode bfe6321 15/34: * csv-mode/csv-mode.el: Remove out-of-date "URL:" header., Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode 8824a58 30/34: * packages/csv-mode/csv-mode.el: New TAB/backtab commands,
Stefan Monnier <=
- [elpa] externals/csv-mode e83c5c5 19/34: Speed up 'csv-align-fields', Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode 49eb4d1 21/34: * packages/csv-mode/csv-mode.el: Fix for customize-mode, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode 8eedc80 25/34: * packages/csv-mode/csv-mode.el: Fix header-line's alignment, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode cbc9682 34/34: * .gitignore: New file, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode 0a1ff7a 28/34: * packages/csv-mode/csv-mode.el: Auto-shorten columns as well, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode f13ff11 18/34: * csv-mode/csv-mode.el (csv-header-line): New command, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode 5fb7759 17/34: Fix some quoting problems in doc strings, Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode 797c859 31/34: * packages/csv-mode/csv-mode.el: Revert part of last change., Stefan Monnier, 2020/11/29
- [elpa] externals/csv-mode 3fe170f 32/34: Add tests for CSV mode, Stefan Monnier, 2020/11/29