[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/swift-mode 7954107 453/496: Small fixes
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/swift-mode 7954107 453/496: Small fixes |
Date: |
Sun, 29 Aug 2021 11:34:26 -0400 (EDT) |
branch: elpa/swift-mode
commit 79541073d96f11ad0341a66967e302217ab3ec53
Author: taku0 <mxxouy6x3m_github@tatapa.org>
Commit: taku0 <mxxouy6x3m_github@tatapa.org>
Small fixes
---
swift-mode-indent.el | 50 ++++++++++++++----------------
swift-mode-lexer.el | 23 ++++++++------
test/swift-files/indent/declarations.swift | 6 ++--
test/swift-files/indent/expressions.swift | 2 +-
test/swift-files/indent/types.swift | 15 ++++-----
5 files changed, 49 insertions(+), 47 deletions(-)
diff --git a/swift-mode-indent.el b/swift-mode-indent.el
index 3b73c75..dfb59b8 100644
--- a/swift-mode-indent.el
+++ b/swift-mode-indent.el
@@ -407,7 +407,7 @@ declaration and its offset is `swift-mode:basic-offset'."
'("switch") nil '("case" "default"))))
(if (equal (swift-mode:token:text parent) "switch")
;; Inside a switch-statement. Aligns with the "switch"
- (swift-mode:find-and-align-with-parents
+ (swift-mode:find-parent-and-align-with-next
swift-mode:statement-parent-tokens
swift-mode:switch-case-offset)
;; Other cases. Aligns with the previous case.
@@ -415,7 +415,7 @@ declaration and its offset is `swift-mode:basic-offset'."
;; After "catch"
((equal previous-text "catch")
- (swift-mode:find-and-align-with-parents
+ (swift-mode:find-parent-and-align-with-next
swift-mode:statement-parent-tokens
swift-mode:multiline-statement-offset))
@@ -476,7 +476,7 @@ declaration and its offset is `swift-mode:basic-offset'."
;; in
;; a
;; }
- (swift-mode:find-and-align-with-parents '("for" {)))
+ (swift-mode:find-parent-and-align-with-next '("for" {)))
;; Before "where" on the current line
((and next-is-on-current-line (equal next-text "where"))
@@ -542,9 +542,9 @@ declaration and its offset is `swift-mode:basic-offset'."
swift-mode:multiline-statement-offset
swift-mode:multiline-statement-offset))
((equal (swift-mode:token:text parent) "for")
- (swift-mode:find-and-align-with-parents '("for")))
+ (swift-mode:find-parent-and-align-with-next '("for")))
(t
- (swift-mode:find-and-align-with-parents
+ (swift-mode:find-parent-and-align-with-next
(append swift-mode:statement-parent-tokens '(<))
swift-mode:multiline-statement-offset)))))
@@ -628,14 +628,14 @@ declaration and its offset is `swift-mode:basic-offset'."
(swift-mode:calculate-indent-of-expression
swift-mode:multiline-statement-offset
swift-mode:multiline-statement-offset))
- (swift-mode:find-and-align-with-parents
+ (swift-mode:find-parent-and-align-with-next
(append swift-mode:statement-parent-tokens '(< "for"))
swift-mode:multiline-statement-offset)))))
;; After implicit-\; or ;
((memq previous-type '(implicit-\; \;))
(goto-char (swift-mode:token:start previous-token))
- (swift-mode:find-and-align-with-parents
+ (swift-mode:find-parent-and-align-with-next
(remove '\; (remove 'implicit-\; swift-mode:statement-parent-tokens))
0
'(implicit-\; \;)))
@@ -677,20 +677,20 @@ declaration and its offset is `swift-mode:basic-offset'."
;; After case ... : or default:
((eq previous-type 'case-:)
(goto-char (swift-mode:token:start previous-token))
- (swift-mode:find-and-align-with-parents
+ (swift-mode:find-parent-and-align-with-next
swift-mode:statement-parent-tokens
(- swift-mode:basic-offset swift-mode:switch-case-offset)))
;; Before ; on the current line
((and next-is-on-current-line (eq next-type '\;))
- (swift-mode:find-and-align-with-parents
+ (swift-mode:find-parent-and-align-with-next
(remove '\; (remove 'implicit-\; swift-mode:statement-parent-tokens))
0
'(implicit-\; \;)))
;; After if, guard, and while
((member previous-text '("if" "guard" "while"))
- (swift-mode:find-and-align-with-parents
+ (swift-mode:find-parent-and-align-with-next
swift-mode:statement-parent-tokens
swift-mode:multiline-statement-offset))
@@ -710,14 +710,17 @@ declaration and its offset is `swift-mode:basic-offset'."
(swift-mode:calculate-indent-of-expression
swift-mode:multiline-statement-offset)))))
-(defun swift-mode:find-and-align-with-parents
+(defun swift-mode:find-parent-and-align-with-next
(parents
&optional
offset
stop-at-eol-token-types
stop-at-bol-token-types
bol-offset)
- "Return start column of the current expressions or statement plus offset.
+ "Find the parent and return indentation based on it.
+
+A parent is, for example, the open bracket of the containing block or
+semicolon of the preceding statement.
PARENTS is a list of token types that precedes an expression or a statement.
OFFSET is the offset. If it is omitted, assumed to be 0.
@@ -727,8 +730,9 @@ If scanning stops at STOP-AT-EOL-TOKEN-TYPES, align with
the next token with
BOL-OFFSET.
If scanning stops at STOP-AT-BOL-TOKEN-TYPES, align with that token with
BOL-OFFSET.
-If STOP-AT-BOL-TOKEN-TYPES is the symbol `any', the cursor is assumed to be
-on the previous line."
+If STOP-AT-BOL-TOKEN-TYPES or STOP-AT-BOL-TOKEN-TYPES is the symbol
+`any', it matches all tokens.
+The point is assumed to be on the previous line."
(save-excursion
(let* ((parent (swift-mode:backward-sexps-until
parents
@@ -749,17 +753,11 @@ on the previous line."
stop-at-eol-token-types)
(member (swift-mode:token:text parent)
stop-at-eol-token-types)))))
- (when (or stopped-at-parent stopped-at-eol)
- (goto-char parent-end)
- (forward-comment (point-max)))
- ;; Now, the cursor is at the first token of the expression.
-
(if stopped-at-parent
- ;; The cursor is at the start of the entire expression.
- ;; Aligns with the start of the expression with offset.
(swift-mode:align-with-next-token parent offset)
- ;; The cursor is at the middle of the expression.
- ;; Aligns with this line with bol-offset.
+ (when stopped-at-eol
+ (goto-char parent-end)
+ (forward-comment (point-max)))
(swift-mode:align-with-current-line bol-offset)))))
(defun swift-mode:calculate-indent-of-expression
@@ -767,7 +765,7 @@ on the previous line."
offset
bol-offset
after-attributes)
- "Return start column of the current expressions plus offset.
+ "Return indentation of the current expression.
the cursor is assumed to be on the previous line.
@@ -975,7 +973,7 @@ This function is also used for close-curly-brace."
(setq next-token (swift-mode:forward-token-or-list))
(goto-char (1+ pos))))))))
(if is-declaration-or-control-statement-body
- (swift-mode:find-and-align-with-parents
+ (swift-mode:find-parent-and-align-with-next
swift-mode:statement-parent-tokens
offset)
(swift-mode:calculate-indent-of-expression offset offset))))
@@ -1487,7 +1485,7 @@ SKIP-TOKEN-OR-LIST-FUNCTION skips forward/backward a
token or a list.
MATCHING-BRACKET-TEXT is a text of the matching bracket.
UNMATCHING-BRACKET-TEXT is a text of the current bracket."
(let ((pos (point))
- (prohibited-tokens (append
+ (prohibited-tokens (cons
unmatching-bracket-text
swift-mode:tokens-not-in-generic-parameter-list))
(next-token (funcall skip-token-or-list-function)))
diff --git a/swift-mode-lexer.el b/swift-mode-lexer.el
index 326e750..a41d152 100644
--- a/swift-mode-lexer.el
+++ b/swift-mode-lexer.el
@@ -786,8 +786,7 @@
https://github.com/apple/swift-evolution/blob/master/proposals/0071-member-keywo
"Move point forward to the next position of the end of a token.
Return the token object. If no more tokens available, return a token with
-type `out-of-buffer'"
-
+type `outside-of-buffer'."
(let ((pos (point)))
(let ((chunk (swift-mode:chunk-after)))
(when (swift-mode:chunk:comment-p chunk)
@@ -872,22 +871,22 @@ This function does not return `implicit-;' or `type-:'."
;; for angle bracket, and a type parameter starts with an upper case
;; character, a square bracket, a parenthesis, or keyword 'protocol'.
((and (eq (char-after) ?<)
- (looking-at "<\\([[:upper:]\\[[(]\\|protocol\\)"))
+ (looking-at "<\\([[:upper:][(]\\|protocol\\)"))
(forward-char)
(swift-mode:token '< "<" (1- (point)) (point)))
;; Close angle bracket for type parameters
;;
;; Close angle bracket follows identifier, a square bracket, a parenthesis,
- ;; or another another bracket (e.g. Foo<Bar<[(Int, String)]>>)
+ ;; or another angle bracket (e.g. Foo<Bar<[(Int, String)]>>)
((and (eq (char-after) ?>)
(save-excursion
;; You know that regular languages can be reversed. Thus you may
;; think that `looking-back' reverses the given regexp and scans
- ;; chars backwards. Nevertheless, `looking-back' function does not
- ;; do that. It just repeats `looking-at' with decrementing start
+ ;; chars backwards. Nevertheless, `looking-back' function does not
+ ;; do that. It just repeats `looking-at' with decrementing start
;; position until it succeeds. The document says that it is not
- ;; recommended to use. So using `skip-chars-backward',
+ ;; recommended to use. So using `skip-chars-backward',
;; `skip-syntax-backward', and `looking-at' here.
(skip-chars-backward "])>")
(skip-syntax-backward "w_")
@@ -999,7 +998,7 @@ This function does not return `implicit-;' or `type-:'."
"Move point backward to the previous position of the end of a token.
Return the token object. If no more tokens available, return a token with
-type `out-of-buffer'."
+type `outside-of-buffer'."
(let ((pos (point)))
(let ((chunk (swift-mode:chunk-after)))
@@ -1115,14 +1114,14 @@ This function does not return `implicit-;' or `type-:'."
;; for angle bracket, and a type parameter starts with an upper case
;; character, a square bracket, a parenthesis, or keyword `protocol'.
((and (eq (char-before) ?<)
- (looking-at "\\([[:upper:]\\[[(]\\|protocol\\)"))
+ (looking-at "\\([[:upper:][(]\\|protocol\\)"))
(backward-char)
(swift-mode:token '< "<" (point) (1+ (point))))
;; Close angle bracket for type parameters
;;
;; Close angle bracket follows identifier, a square bracket, a parenthesis,
- ;; or another another bracket (e.g. Foo<Bar<[(Int, String)]>>)
+ ;; or another angle bracket (e.g. Foo<Bar<[(Int, String)]>>)
((and (eq (char-before) ?>)
(save-excursion
(skip-chars-backward "])>")
@@ -1230,6 +1229,7 @@ This function does not return `implicit-;' or `type-:'."
(defun swift-mode:forward-string-chunk ()
"Skip forward a string chunk.
+
A string chunk is a part of single-line/multiline string delimited with
quotation marks or interpolated expressions."
(condition-case nil
@@ -1238,6 +1238,7 @@ quotation marks or interpolated expressions."
(defun swift-mode:backward-string-chunk ()
"Skip backward a string chunk.
+
A string chunk is a part of single-line/multiline string delimited with
quotation marks or interpolated expressions."
(condition-case nil
@@ -1246,6 +1247,7 @@ quotation marks or interpolated expressions."
(defun swift-mode:beginning-of-string ()
"Move point to the beginning of single-line/multiline string.
+
Assuming the cursor is on a string."
(goto-char (or (nth 8 (syntax-ppss)) (point)))
(let (matching-parenthesis)
@@ -1259,6 +1261,7 @@ Assuming the cursor is on a string."
(defun swift-mode:end-of-string ()
"Move point to the end of single-line/multiline string.
+
Assuming the cursor is on a string."
(goto-char (or (nth 8 (syntax-ppss)) (point)))
(let (matching-parenthesis)
diff --git a/test/swift-files/indent/declarations.swift
b/test/swift-files/indent/declarations.swift
index 469d0f9..5fda5c8 100644
--- a/test/swift-files/indent/declarations.swift
+++ b/test/swift-files/indent/declarations.swift
@@ -76,17 +76,17 @@ class Foo {
xx
let f
- = g
:
(
Int,
Int
)
- ->
throws
+ ->
[
X
]
+ = g
let x = 1,
@@ -420,7 +420,7 @@ struct A {
// Protocol declarations
protocol Foo {
- func foo(x, y) -> throws (A, B)
+ func foo(x, y) throws -> (A, B)
init<A, B>(x: Int) throws
where
A: C
diff --git a/test/swift-files/indent/expressions.swift
b/test/swift-files/indent/expressions.swift
index 3be9735..3e7ffc2 100644
--- a/test/swift-files/indent/expressions.swift
+++ b/test/swift-files/indent/expressions.swift
@@ -305,8 +305,8 @@ let x = { (
x: Int,
y: Int
)
- ->
throws
+ ->
Foo
in
println("Hello, World! " + x + y)
diff --git a/test/swift-files/indent/types.swift
b/test/swift-files/indent/types.swift
index ca3ab48..331a3c9 100644
--- a/test/swift-files/indent/types.swift
+++ b/test/swift-files/indent/types.swift
@@ -202,13 +202,14 @@ let foo: (
A,
B
)
+ throws
->
- throws (
+ (
A,
B
)
- ->
throws
+ ->
[
A
]
@@ -220,14 +221,14 @@ let foo:
A,
B
)
- ->
throws
+ ->
(
A,
B
)
- ->
throws
+ ->
[
B
]
@@ -238,22 +239,22 @@ let foo
A,
B
)
- ->
throws
+ ->
B
= abc
let foo:
(A, B)
- ->
rethrows
+ ->
B
= abc
let foo
:(A, B)
- ->
rethrows
+ ->
B
= abc
- [nongnu] elpa/swift-mode e229d69 405/496: Fix typo, (continued)
- [nongnu] elpa/swift-mode e229d69 405/496: Fix typo, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode cfbec0a 406/496: Update copyrights, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 7f89b8c 411/496: Change swift-mode:mark-defun to match Emacs 26, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode c48907c 407/496: Update font-lock for standard library, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode d47bdd2 412/496: Fix spell, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 021fdb1 414/496: Tweak mark-defun, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode f62cd58 423/496: Change standard values for executables, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode cde97e2 421/496: Bump version to 7.1.0, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 60e5cf7 428/496: Remove redundant code, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 4a56636 432/496: Update test data, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 7954107 453/496: Small fixes,
ELPA Syncer <=
- [nongnu] elpa/swift-mode fe84a38 448/496: Add links to sourcekit-lsp and swift-playground-mode, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode cba6718 472/496: Exclude 25.1 from GitHub Action, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 19d909b 468/496: Migrate to Eldev, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 02a1726 476/496: Introduce some font-lock tests, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode abbd06e 478/496: Fix error on indenting a closing paren outside strings, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode ad12a30 486/496: Remove Cask from README, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 1b47a09 495/496: Bump version to 8.3.0, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 561cacb 043/496: Code style, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 396f297 058/496: Fix test docstring typo, ELPA Syncer, 2021/08/29
- [nongnu] elpa/swift-mode 60956cb 081/496: fixup! Add swift repl commands to mode map, ELPA Syncer, 2021/08/29