質問するログイン新規登録

回答編集履歴

2

修正

2021/01/08 06:43

投稿

takashit16833
takashit16833

スコア0

answer CHANGED
@@ -24,7 +24,7 @@
24
24
  ```html
25
25
  <div><img src="hoge.png" alt=""></div>
26
26
  ```
27
- ンライン嫌だなーと思って展開しようとすると
27
+ ンライン嫌だなーと思って展開しようとすると
28
28
  ```html
29
29
  <div>
30
30
  |<img src="hoge.png" alt=""></div>

1

修正

2021/01/08 06:43

投稿

takashit16833
takashit16833

スコア0

answer CHANGED
@@ -16,4 +16,53 @@
16
16
  (if (looking-at "</\(.*?\)>")
17
17
  (expand-empty-tag)
18
18
  (newline-and-indent)))
19
+ ```
20
+
21
+
22
+ 追記
23
+ ちょっと改良しました。上のだと
24
+ ```html
25
+ <div><img src="hoge.png" alt=""></div>
26
+ ```
27
+ インライン嫌だなーと思って展開しようとすると
28
+ ```html
29
+ <div>
30
+ |<img src="hoge.png" alt=""></div>
31
+ ```
32
+
33
+ ```html
34
+ <div>
35
+ <img src="hoge.png" alt="">
36
+ |
37
+ </div>
38
+ ```
39
+ こうなってしまう。この場合は
40
+ ```html
41
+ <div>
42
+ |<img src="hoge.png" alt=""></div>
43
+ ```
44
+
45
+ ```html
46
+ <div>
47
+ <img src="hoge.png" alt="">
48
+ |</div>
49
+ ```
50
+ こうが良かったので。
51
+
52
+ ```lisp
53
+ (defun web-mode-ret ()
54
+ (interactive)
55
+ (let ((narrow-end (point))
56
+ (in-empty-tag nil)
57
+ (tag-name))
58
+ (if (looking-at "</\(.*?\)>")
59
+ (progn (setq tag-name (match-string 1))
60
+ (save-excursion
61
+ (beginning-of-line)
62
+ (if (re-search-forward (concat "<" tag-name ".*>") narrow-end t)
63
+ (setq in-empty-tag t)))
64
+ (if in-empty-tag
65
+ (expand-empty-tag)
66
+ (newline-and-indent)))
67
+ (newline-and-indent))))
19
68
  ```