回答編集履歴
6
s
test
CHANGED
@@ -64,7 +64,7 @@
|
|
64
64
|
|
65
65
|
```cpp
|
66
66
|
|
67
|
-
std::cout << "aaaa"
|
67
|
+
std::cout << "aaaa"
|
68
68
|
|
69
69
|
<< "bbbb" << std::endl;
|
70
70
|
|
5
以上
test
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
|
24
24
|
|
25
|
-
## 文字列リテラルが2つ連続しない場合
|
25
|
+
## 文字列リテラルが2つ以上連続しない場合
|
26
26
|
|
27
27
|
|
28
28
|
|
@@ -46,7 +46,7 @@
|
|
46
46
|
|
47
47
|
|
48
48
|
|
49
|
-
## 文字列リテラルが2つ連続する場合
|
49
|
+
## 文字列リテラルが2つ以上連続する場合
|
50
50
|
|
51
51
|
|
52
52
|
|
4
d
test
CHANGED
@@ -40,7 +40,7 @@
|
|
40
40
|
|
41
41
|
```cpp
|
42
42
|
|
43
|
-
std::cout << "aaaa
|
43
|
+
std::cout << "aaaa" << a << "bbbb" << std::endl;
|
44
44
|
|
45
45
|
```
|
46
46
|
|
3
a
test
CHANGED
@@ -1 +1,71 @@
|
|
1
|
+
`<<` 演算子で文字列リテラルが2つ連続する場合は改行される仕様 (バグ?) になっているようです。今現在、この挙動を制御するようなパラメータはないようなので、clang-format を使うのであれば、改行されるのは仕方ないと思います。
|
2
|
+
|
3
|
+
|
4
|
+
|
1
|
-
|
5
|
+
連続する文字列リテラルは1つに結合すれば、改行されなくなります。
|
6
|
+
|
7
|
+
|
8
|
+
|
9
|
+
```diff
|
10
|
+
|
11
|
+
- std::cout << "aaaa" << "bbbb" << std::endl;
|
12
|
+
|
13
|
+
+ std::cout << "aaaabbbb" << std::endl;
|
14
|
+
|
15
|
+
```
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
↓ バグレポート
|
20
|
+
|
21
|
+
[45018 – A newline is added after a string token if the next 2 tokens are lessless and string](https://bugs.llvm.org/show_bug.cgi?id=45018)
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
## 文字列リテラルが2つ連続しない場合
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
```cpp
|
30
|
+
|
31
|
+
std::cout << "aaaa" << a << "bbbb" << std::endl;
|
32
|
+
|
33
|
+
```
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
↓
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
```cpp
|
42
|
+
|
43
|
+
std::cout << "aaaaaaaa" << a << "bbbb" << std::endl;
|
44
|
+
|
45
|
+
```
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
## 文字列リテラルが2つ連続する場合
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
```cpp
|
54
|
+
|
55
|
+
std::cout << "aaaa" << "bbbb" << std::endl;
|
56
|
+
|
57
|
+
```
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
↓
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
```cpp
|
66
|
+
|
67
|
+
std::cout << "aaaa"
|
68
|
+
|
69
|
+
<< "bbbb" << std::endl;
|
70
|
+
|
71
|
+
```
|
2
d
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
---質問内容を勘違いしていたので修正します---
|
1
|
+
---質問内容を勘違いしていたので後で修正します---
|
1
d
test
CHANGED
@@ -1,51 +1 @@
|
|
1
|
-
文字列リテラルが ColumnLimit を超える場合に分割して改行するかどうかを制御したいということでしょうか。だとすると、`BreakStringLiterals: false` にすれば、自動改行はされなくなると思います。
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
* フォーマット前
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
```cpp
|
10
|
-
|
11
|
-
str = "text text text text text text text text text";
|
12
|
-
|
13
|
-
```
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
* true: 改行する
|
18
|
-
|
19
|
-
```cpp
|
20
|
-
|
21
|
-
// BreakStringLiterals: true
|
22
|
-
|
23
|
-
str = "text text text text text "
|
24
|
-
|
25
|
-
|
1
|
+
---質問内容を勘違いしていたので修正します---
|
26
|
-
|
27
|
-
```
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
* false: 改行しない
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
```cpp
|
36
|
-
|
37
|
-
// BreakStringLiterals: false
|
38
|
-
|
39
|
-
str = "text text text text text text text text text";
|
40
|
-
|
41
|
-
```
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
## 参考
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
1. [Clang-Format Style Options — Clang 11 documentation](https://clang.llvm.org/docs/ClangFormatStyleOptions.html)
|
50
|
-
|
51
|
-
1. [clang-format 9 の設定パラメータ まとめ - Pynote](https://www.pynote.info/entry/clang-format-settings#BreakStringLiterals)
|