Editorconfig charset windows 1251

Skip to content



Navigation Menu

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

Description

I suppose there’re technical reasons to make charset support only a closed set of encodings but current list falls pretty short. I’m specially missing encodings that are common in my area (Western Europe):

  • ISO-8859-15 (Latin-9) — Latin-1’s fork with € symbol
  • Windows-1252 — Default encoding in Windows computers sold here

Use cases:

  • Ensure a legacy project doesn’t get messed by a modern «UTF-8 by default» IDE
  • Encode helper scripts (*.bat) in native format

Other countries will probably miss other encodings.

If you need a list of encodings and aliases you can probably borrow it from the iconv project.

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Содержание

  1. Editorconfig charset windows 1251 — установка правильной кодировки для Windows
  2. Что такое Editorconfig и зачем нужно использовать charset windows 1251?
  3. Editorconfig: определение и цель
  4. Преимущества использования charset windows 1251
  5. Как настроить Editorconfig для работы с charset windows 1251
  6. Примеры использования charset windows 1251 в Editorconfig
  7. Влияние charset windows 1251 на кодировку и отображение текста
  8. Преимущества использования charset windows 1251
  9. Заключение

Editorconfig charset windows 1251 — установка правильной кодировки для Windows

Если вы разработчик программного обеспечения, вероятно, вы сталкивались с проблемами, связанными с кодировками. Кодировки являются важной частью любого проекта, и неправильное обращение с ними может привести к неприятным последствиям, таким как некорректное отображение текста или ошибки в работе программы.

В этой статье мы рассмотрим роль и использование EditorConfig для кодировок и в особенности кодировки Windows-1251. EditorConfig — это файл конфигурации, который позволяет устанавливать и настраивать определенные правила для редактора кода, включая кодировку. С его помощью вы можете гарантировать, что каждый разработчик будет работать с нужной кодировкой и избежать проблем совместимости.

Итак, что же такое кодировка Windows-1251? Это стандартный набор символов, используемый в операционных системах Windows для представления текста на русском и других восточноевропейских языках. Он включает в себя все основные символы русского алфавита, а также дополнительные символы и знаки препинания.

Когда вы работаете с проектом, использующим кодировку Windows-1251, важно убедиться, что ваш редактор кода правильно настроен для работы с этой кодировкой. Разные редакторы могут по-разному интерпретировать символы и знаки препинания, и неправильная настройка может привести к искажению текста или даже к неработоспособности программы.

С использованием EditorConfig вы можете легко настроить ваш редактор кода для работы с кодировкой Windows-1251. Просто добавьте соответствующую настройку в файл .editorconfig вашего проекта, и EditorConfig автоматически применит ее при открытии файлов в редакторе.

Что такое Editorconfig и зачем нужно использовать charset windows 1251?

Charset windows 1251 является одной из кодировок, используемых для представления символов на русском языке. Эта кодировка широко распространена и поддерживается множеством программ, включая текстовые редакторы. Использование charset windows 1251 позволяет корректно отображать и редактировать текст на русском языке без искажений или ошибок.

Преимущества использования Editorconfig с charset windows 1251 включают:

  • Согласованность кодирования: Editorconfig позволяет определить и поддерживать единый формат кодирования для всего проекта. Это значит, что все файлы будут сохраняться в кодировке windows 1251, что облегчает чтение и понимание кода для всех членов команды разработчиков.
  • Минимизация ошибок: Использование единой кодировки упрощает работу с текстовыми файлами на русском языке и уменьшает возможность возникновения ошибок связанных с кодировками. Это особенно полезно при совместной работе с другими разработчиками, которые могут использовать разные кодировки.
  • Удобство работы: Благодаря настройкам Editorconfig кодировка автоматически применяется к файлам при их открытии в текстовом редакторе. Это позволяет сэкономить время и избежать неудобств, связанных с ручной установкой нужной кодировки каждый раз при открытии файла.

Editorconfig: определение и цель

Основная цель использования файла Editorconfig — обеспечить единообразие и согласованность стиля кода в проекте, особенно когда в нем участвуют разные разработчики. Файл Editorconfig содержит набор опций, которые определяют правила форматирования для каждого типа файла. Эти опции могут включать такие параметры, как размер отступа, использование табуляции или пробелов, настройку отображения конечных символов строки, выбор кодировки и другие.

Преимущества использования Editorconfig в проекте:

  • Единое форматирование кода: благодаря файлу Editorconfig все участники проекта будут использовать одни и те же правила форматирования, что делает код более читаемым и понятным для всех.
  • Улучшенное сотрудничество: настройка файлов Editorconfig становится частью проекта и легко доступна для всех разработчиков, что позволяет им сосредоточиться на написании кода, а не на его форматировании.
  • Гибкость настроек: Editorconfig позволяет определить правила форматирования для разных типов файлов и директорий, а также задать их исключения. Это дает возможность настроить форматирование кода по мере необходимости для каждого проекта.

В итоге, использование Editorconfig помогает сохранить единообразие стиля кодирования и повышает читаемость и понятность кода в проекте. Этот инструмент облегчает сотрудничество разработчиков и позволяет им сосредоточиться на самом программировании, вместо траты времени на форматирование кода.

Преимущества использования charset windows 1251

Это особенно важно для русского интернета, где большинство веб-сайтов и контента на русском языке использует именно эту кодировку. Использование charset windows 1251 позволяет улучшить восприятие и понимание контента для русскоязычных пользователей, создавая комфортную среду для чтения статей, блогов и другого текстового материала.

Другим преимуществом charset windows 1251 является его совместимость с различными программами и платформами. Это означает, что текст, записанный в этой кодировке, может быть правильно отображен на разных устройствах и программных платформах, включая веб-страницы, электронные письма, текстовые редакторы и многое другое.

  • Простота использования и привычность — кодировка windows-1251 также широко используется в электронных письмах и других сферах, что делает ее привычной для большого числа пользователей.
  • Поддержка специфических символов — charset windows 1251 позволяет отображать символы, которые не представлены в других кодировках.
  • Совместимость — множество программ и платформ поддерживают charset windows 1251, что делает его удобным для использования в различных ситуациях.

В целом, использование charset windows 1251 обеспечивает надежную и эффективную кодировку для отображения русского текста в интернете, гарантируя правильное отображение символов и специальных символов, устраняя проблемы с отображением. Это делает его необходимым компонентом для создания и представления русскоязычного контента.

Как настроить Editorconfig для работы с charset windows 1251

EditorConfig – это файл конфигурации, который позволяет устанавливать стандартные настройки для редактора кода в проекте. Это позволяет разработчикам иметь единый стиль кодирования внутри всего проекта, а также облегчает совместную работу.

Для настройки EditorConfig для работы с кодировкой windows 1251 вам необходимо создать или открыть файл .editorconfig в корне вашего проекта. Пример содержимого файла .editorconfig, которые нужно указать для работы с кодировкой windows 1251:

  • root = true
  • charset = windows-1251

Указанные настройки позволяют установить кодировку windows 1251 для вашего проекта. Файл .editorconfig представляет собой простой текстовый файл, который может быть легко изменен или расширен с добавлением других настроек, таких как отступы или границы.

Важно отметить, что для работы с кодировкой windows 1251, ваш редактор кода также должен поддерживать эту кодировку. Убедитесь, что вы используете последнюю версию редактора и настроили его для работы с кодировкой windows 1251.

Примеры использования charset windows 1251 в Editorconfig

Использование charset windows 1251 в editorconfig позволяет корректно отображать и редактировать тексты на русском языке в редакторах, которые не поддерживают UTF-8 по умолчанию. Кодировка windows 1251 широко распространена в России и некоторых других странах, и поэтому ее поддержка в editorconfig является важной функцией.

При использовании charset windows 1251 в editorconfig необходимо учитывать, что редактор должен поддерживать эту кодировку. Если редактор не поддерживает указанную кодировку, то тексты на русском языке могут отображаться некорректно или содержать ошибки. Чтобы избежать проблем с кодировкой, рекомендуется использовать редакторы, которые полностью поддерживают charset windows 1251.

  • Один из примеров использования charset windows 1251 в editorconfig:

root = true
[*]
charset = windows-1251

В этом примере мы указываем, что все файлы в проекте должны использовать кодировку windows 1251. Это позволяет работать с русским языком без проблем с кодировкой в редакторе или IDE, поддерживающем editorconfig.

Влияние charset windows 1251 на кодировку и отображение текста

Charset windows 1251 является одним из вариантов кодировки, разработанных для работы с русским языком. Он использует 8-битный формат и включает в себя широкий набор символов, необходимых для записи русского алфавита, а также специальные символы, пунктуацию и числа. Он включает в себя как прописные, так и строчные буквы.

Однако, стоит отметить, что charset windows 1251 имеет свои ограничения. Во-первых, он не поддерживает некоторые символы из других языков, таких как латиница или кириллица с акцентами. Во-вторых, при использовании этой кодировки может возникнуть проблема с отображением текста на разных платформах. Например, веб-браузер может не поддерживать эту кодировку, что может привести к неправильному отображению текста.

Преимущества использования charset windows 1251

  • Простота использования. Charset windows 1251 легко вставляется в кодовую базу проекта и может быть использован без дополнительной настройки.
  • Поддержка широкого набора символов. Эта кодировка включает в себя почти все символы, необходимые для записи русского языка.
  • Совместимость с различными приложениями и операционными системами. Charset windows 1251 поддерживается многими текстовыми редакторами, веб-браузерами и операционными системами, что обеспечивает беспроблемную работу с текстом на русском языке.

В целом, charset windows 1251 является одним из наиболее распространенных и простых способов работы с русским текстом в веб-разработке. Однако, в современной практике кодировка UTF-8 становится все более популярной и рекомендуется для использования в новых проектах. Она поддерживает более широкий набор символов и решает проблему совместимости на разных платформах.

Заключение

Работа с Editorconfig и charset windows 1251 может быть столь же увлекательной, сколь и полезной. Соблюдение правил и рекомендаций при работе с этими инструментами позволяет значительно улучшить качество разработки веб-приложений на русском языке. Главное, чтобы кодировка windows 1251 была правильно настроена и совместима с используемыми текстовыми редакторами и IDE.

Перечислим несколько ключевых советов и рекомендаций:

  • Используйте правильную кодировку: Убедитесь, что ваш проект использует кодировку windows 1251, чтобы корректно отображать русские символы.
  • Настройте редактор: Проверьте настройки своего текстового редактора или IDE и убедитесь, что он поддерживает работу с кодировкой windows 1251.
  • Применяйте Editorconfig: Создайте файл .editorconfig в корневой папке вашего проекта и определите в нем правила форматирования кода. Это поможет обеспечить единообразие и согласованность кода в различных редакторах.
  • Соблюдайте стандарты написания кода: Используйте отступы, правильные отступы, имена переменных и функций, чтобы сделать ваш код более читаемым и понятным.
  • Тестируйте и отлаживайте: После внесения изменений в код, протестируйте его и убедитесь, что он работает правильно с кодировкой windows 1251.

Использование Editorconfig и правильной кодировки windows 1251 поможет вам значительно упростить и ускорить разработку веб-приложений на русском языке. Это также поддерживает наилучшие практики и помогает создавать код высокого качества. Следуя приведенным советам и рекомендациям, вы можете обеспечить согласованность и эффективность своего рабочего процесса.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
  [Flags]
  [TypeConverter(typeof (KeysConverter))]
  [Editor("System.Windows.Forms.Design.ShortcutKeysEditor, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof (UITypeEditor))]
  [ComVisible(true)]
  public enum Keys
  {
    /// <summary>
    ///   Битовая маска для извлечения кода клавиши из значения ключа.
    /// </summary>
    KeyCode = 65535, // 0x0000FFFF
    /// <summary>
    ///   Битовая маска для извлечения модификаторов из значения ключа.
    /// </summary>
    Modifiers = -65536, // -0x00010000
    /// <summary>Нет нажатых клавиш.</summary>
    None = 0,
    /// <summary>Левой кнопки мыши.</summary>
    LButton = 1,
    /// <summary>Правой кнопкой мыши.</summary>
    RButton = 2,
    /// <summary>Клавиша "Отмена".</summary>
    Cancel = RButton | LButton, // 0x00000003
    /// <summary>Средняя кнопка мыши (мыши).</summary>
    MButton = 4,
    /// <summary>Первая кнопка мыши (пяти кнопку мыши).</summary>
    XButton1 = MButton | LButton, // 0x00000005
    /// <summary>Вторая кнопка мыши (пяти кнопку мыши).</summary>
    XButton2 = MButton | RButton, // 0x00000006
    /// <summary>Клавиша BACKSPACE.</summary>
    Back = 8,
    /// <summary>Клавиша TAB.</summary>
    Tab = Back | LButton, // 0x00000009
    /// <summary>Клавиша перевода строки.</summary>
    LineFeed = Back | RButton, // 0x0000000A
    /// <summary>Клавиша CLEAR.</summary>
    Clear = Back | MButton, // 0x0000000C
    /// <summary>Клавиша RETURN.</summary>
    Return = Clear | LButton, // 0x0000000D
    /// <summary>Клавиша ВВОД.</summary>
    Enter = Return, // 0x0000000D
    /// <summary>Клавиша SHIFT.</summary>
    ShiftKey = 16, // 0x00000010
    /// <summary>Клавиша CTRL.</summary>
    ControlKey = ShiftKey | LButton, // 0x00000011
    /// <summary>Клавиша ALT.</summary>
    Menu = ShiftKey | RButton, // 0x00000012
    /// <summary>Клавиша PAUSE.</summary>
    Pause = Menu | LButton, // 0x00000013
    /// <summary>Клавиша CAPS LOCK.</summary>
    Capital = ShiftKey | MButton, // 0x00000014
    /// <summary>Клавиша CAPS LOCK.</summary>
    CapsLock = Capital, // 0x00000014
    /// <summary>Клавиша режима "Кана" редактора метода ввода.</summary>
    KanaMode = CapsLock | LButton, // 0x00000015
    /// <summary>
    ///   Клавиша режима IME Hanguel.
    ///    (поддерживается для совместимости; используйте <see langword="HangulMode" />)
    /// </summary>
    HanguelMode = KanaMode, // 0x00000015
    /// <summary>Клавиша режима "Хангыль" редактора метода ввода.</summary>
    HangulMode = HanguelMode, // 0x00000015
    /// <summary>Клавиша режима "Джунджа" редактора метода ввода.</summary>
    JunjaMode = HangulMode | RButton, // 0x00000017
    /// <summary>Ключ, последний режим редактора метода ввода.</summary>
    FinalMode = ShiftKey | Back, // 0x00000018
    /// <summary>Клавиша режима "Ханджа" редактора метода ввода.</summary>
    HanjaMode = FinalMode | LButton, // 0x00000019
    /// <summary>Клавиша режима "Кандзи" редактора метода ввода.</summary>
    KanjiMode = HanjaMode, // 0x00000019
    /// <summary>Клавиша ESC.</summary>
    Escape = KanjiMode | RButton, // 0x0000001B
    /// <summary>Клавиша преобразования IME.</summary>
    IMEConvert = FinalMode | MButton, // 0x0000001C
    /// <summary>Клавиша без преобразования IME.</summary>
    IMENonconvert = IMEConvert | LButton, // 0x0000001D
    /// <summary>
    ///   Клавиша заменяет принятия IME <see cref="F:System.Windows.Forms.Keys.IMEAceept" />.
    /// </summary>
    IMEAccept = IMEConvert | RButton, // 0x0000001E
    /// <summary>
    ///   Клавиша принятия IME.
    ///    Является устаревшей, используйте <see cref="F:System.Windows.Forms.Keys.IMEAccept" /> вместо него.
    /// </summary>
    IMEAceept = IMEAccept, // 0x0000001E
    /// <summary>Клавиша изменение режима редактора метода ввода.</summary>
    IMEModeChange = IMEAceept | LButton, // 0x0000001F
    /// <summary>Клавиша ПРОБЕЛ.</summary>
    Space = 32, // 0x00000020
    /// <summary>Клавиша PAGE UP.</summary>
    Prior = Space | LButton, // 0x00000021
    /// <summary>Клавиша PAGE UP.</summary>
    PageUp = Prior, // 0x00000021
    /// <summary>Клавиша PAGE DOWN.</summary>
    Next = Space | RButton, // 0x00000022
    /// <summary>Клавиша PAGE DOWN.</summary>
    PageDown = Next, // 0x00000022
    /// <summary>Клавиша END.</summary>
    End = PageDown | LButton, // 0x00000023
    /// <summary>Клавиша HOME.</summary>
    Home = Space | MButton, // 0x00000024
    /// <summary>Клавиша СТРЕЛКА ВЛЕВО.</summary>
    Left = Home | LButton, // 0x00000025
    /// <summary>Клавиша СТРЕЛКА ВВЕРХ.</summary>
    Up = Home | RButton, // 0x00000026
    /// <summary>Клавиша СТРЕЛКА ВПРАВО.</summary>
    Right = Up | LButton, // 0x00000027
    /// <summary>Клавиша СТРЕЛКА ВНИЗ.</summary>
    Down = Space | Back, // 0x00000028
    /// <summary>Клавиша SELECT.</summary>
    Select = Down | LButton, // 0x00000029
    /// <summary>Клавиша PRINT.</summary>
    Print = Down | RButton, // 0x0000002A
    /// <summary>Клавиша EXECUTE.</summary>
    Execute = Print | LButton, // 0x0000002B
    /// <summary>Клавиша PRINT SCREEN.</summary>
    Snapshot = Down | MButton, // 0x0000002C
    /// <summary>Клавиша PRINT SCREEN.</summary>
    PrintScreen = Snapshot, // 0x0000002C
    /// <summary>Клавишу INS.</summary>
    Insert = PrintScreen | LButton, // 0x0000002D
    /// <summary>DEL ключ.</summary>
    Delete = PrintScreen | RButton, // 0x0000002E
    /// <summary>Клавиша HELP.</summary>
    Help = Delete | LButton, // 0x0000002F
    /// <summary>Клавиша 0.</summary>
    D0 = Space | ShiftKey, // 0x00000030
    /// <summary>Клавиша 1.</summary>
    D1 = D0 | LButton, // 0x00000031
    /// <summary>Клавиша 2.</summary>
    D2 = D0 | RButton, // 0x00000032
    /// <summary>Клавиша 3.</summary>
    D3 = D2 | LButton, // 0x00000033
    /// <summary>Клавиша 4.</summary>
    D4 = D0 | MButton, // 0x00000034
    /// <summary>Клавиша 5.</summary>
    D5 = D4 | LButton, // 0x00000035
    /// <summary>Клавиша 6.</summary>
    D6 = D4 | RButton, // 0x00000036
    /// <summary>Клавиша 7.</summary>
    D7 = D6 | LButton, // 0x00000037
    /// <summary>Клавиша 8.</summary>
    D8 = D0 | Back, // 0x00000038
    /// <summary>Клавиша 9.</summary>
    D9 = D8 | LButton, // 0x00000039
    /// <summary>Клавиша A.</summary>
    A = 65, // 0x00000041
    /// <summary>Клавиша B.</summary>
    B = 66, // 0x00000042
    /// <summary>Клавиша C.</summary>
    C = B | LButton, // 0x00000043
    /// <summary>Клавиша D.</summary>
    D = 68, // 0x00000044
    /// <summary>Клавиша E.</summary>
    E = D | LButton, // 0x00000045
    /// <summary>Клавиша F.</summary>
    F = D | RButton, // 0x00000046
    /// <summary>Клавиша G.</summary>
    G = F | LButton, // 0x00000047
    /// <summary>Клавиша H.</summary>
    H = 72, // 0x00000048
    /// <summary>Клавиша I.</summary>
    I = H | LButton, // 0x00000049
    /// <summary>Клавиша J.</summary>
    J = H | RButton, // 0x0000004A
    /// <summary>Клавиша K.</summary>
    K = J | LButton, // 0x0000004B
    /// <summary>Клавиша L.</summary>
    L = H | MButton, // 0x0000004C
    /// <summary>Клавиша M.</summary>
    M = L | LButton, // 0x0000004D
    /// <summary>Клавиша N.</summary>
    N = L | RButton, // 0x0000004E
    /// <summary>Клавиша O.</summary>
    O = N | LButton, // 0x0000004F
    /// <summary>Клавиша P.</summary>
    P = 80, // 0x00000050
    /// <summary>Клавиша Q.</summary>
    Q = P | LButton, // 0x00000051
    /// <summary>Клавиша R.</summary>
    R = P | RButton, // 0x00000052
    /// <summary>Клавиша S.</summary>
    S = R | LButton, // 0x00000053
    /// <summary>Клавиша T.</summary>
    T = P | MButton, // 0x00000054
    /// <summary>Клавиша U.</summary>
    U = T | LButton, // 0x00000055
    /// <summary>Клавиша V.</summary>
    V = T | RButton, // 0x00000056
    /// <summary>Клавиша W.</summary>
    W = V | LButton, // 0x00000057
    /// <summary>Клавиша X.</summary>
    X = P | Back, // 0x00000058
    /// <summary>Клавиша Y.</summary>
    Y = X | LButton, // 0x00000059
    /// <summary>Клавиша Z.</summary>
    Z = X | RButton, // 0x0000005A
    /// <summary>
    ///   Левая клавиша с логотипом Windows (клавиатура Microsoft Natural Keyboard).
    /// </summary>
    LWin = Z | LButton, // 0x0000005B
    /// <summary>
    ///   Правая клавиша с логотипом Windows (клавиатура Microsoft Natural Keyboard).
    /// </summary>
    RWin = X | MButton, // 0x0000005C
    /// <summary>
    ///   Клавиша приложения (клавиатура Microsoft Natural Keyboard).
    /// </summary>
    Apps = RWin | LButton, // 0x0000005D
    /// <summary>Ключ компьютера спящего режима.</summary>
    Sleep = Apps | RButton, // 0x0000005F
    /// <summary>Клавиша 0 на цифровой клавиатуре.</summary>
    NumPad0 = 96, // 0x00000060
    /// <summary>Клавиша 1 на цифровой клавиатуре.</summary>
    NumPad1 = NumPad0 | LButton, // 0x00000061
    /// <summary>Клавиша 2 на цифровой клавиатуре.</summary>
    NumPad2 = NumPad0 | RButton, // 0x00000062
    /// <summary>Клавиша 3 на цифровой клавиатуре.</summary>
    NumPad3 = NumPad2 | LButton, // 0x00000063
    /// <summary>Клавиша 4 на цифровой клавиатуре.</summary>
    NumPad4 = NumPad0 | MButton, // 0x00000064
    /// <summary>Клавиша 5 на цифровой клавиатуре.</summary>
    NumPad5 = NumPad4 | LButton, // 0x00000065
    /// <summary>Клавиша 6 на цифровой клавиатуре.</summary>
    NumPad6 = NumPad4 | RButton, // 0x00000066
    /// <summary>Клавиша 7 на цифровой клавиатуре.</summary>
    NumPad7 = NumPad6 | LButton, // 0x00000067
    /// <summary>Клавиша 8 на цифровой клавиатуре.</summary>
    NumPad8 = NumPad0 | Back, // 0x00000068
    /// <summary>Клавиша 9 на цифровой клавиатуре.</summary>
    NumPad9 = NumPad8 | LButton, // 0x00000069
    /// <summary>Клавиша умножения.</summary>
    Multiply = NumPad8 | RButton, // 0x0000006A
    /// <summary>Клавиша сложения.</summary>
    Add = Multiply | LButton, // 0x0000006B
    /// <summary>Клавиша разделителя.</summary>
    Separator = NumPad8 | MButton, // 0x0000006C
    /// <summary>Клавиша вычитания.</summary>
    Subtract = Separator | LButton, // 0x0000006D
    /// <summary>Клавиша десятичного разделителя.</summary>
    Decimal = Separator | RButton, // 0x0000006E
    /// <summary>Клавиша деления.</summary>
    Divide = Decimal | LButton, // 0x0000006F
    /// <summary>Клавиша F1.</summary>
    F1 = NumPad0 | ShiftKey, // 0x00000070
    /// <summary>Клавиша F2.</summary>
    F2 = F1 | LButton, // 0x00000071
    /// <summary>Клавиша F3.</summary>
    F3 = F1 | RButton, // 0x00000072
    /// <summary>Клавиша F4.</summary>
    F4 = F3 | LButton, // 0x00000073
    /// <summary>Клавиша F5.</summary>
    F5 = F1 | MButton, // 0x00000074
    /// <summary>Клавиша F6.</summary>
    F6 = F5 | LButton, // 0x00000075
    /// <summary>Клавиша F7.</summary>
    F7 = F5 | RButton, // 0x00000076
    /// <summary>Клавиша F8.</summary>
    F8 = F7 | LButton, // 0x00000077
    /// <summary>Клавиша F9.</summary>
    F9 = F1 | Back, // 0x00000078
    /// <summary>Клавиша F10.</summary>
    F10 = F9 | LButton, // 0x00000079
    /// <summary>Клавиша F11.</summary>
    F11 = F9 | RButton, // 0x0000007A
    /// <summary>Клавиша F12.</summary>
    F12 = F11 | LButton, // 0x0000007B
    /// <summary>Клавиша F13.</summary>
    F13 = F9 | MButton, // 0x0000007C
    /// <summary>Клавиша F14.</summary>
    F14 = F13 | LButton, // 0x0000007D
    /// <summary>Клавиша F15.</summary>
    F15 = F13 | RButton, // 0x0000007E
    /// <summary>Клавиша F16.</summary>
    F16 = F15 | LButton, // 0x0000007F
    /// <summary>Клавиша F17.</summary>
    F17 = 128, // 0x00000080
    /// <summary>Клавиша F18.</summary>
    F18 = F17 | LButton, // 0x00000081
    /// <summary>Клавиша F19.</summary>
    F19 = F17 | RButton, // 0x00000082
    /// <summary>Клавиша F20.</summary>
    F20 = F19 | LButton, // 0x00000083
    /// <summary>Клавиша F21.</summary>
    F21 = F17 | MButton, // 0x00000084
    /// <summary>Клавиша F22.</summary>
    F22 = F21 | LButton, // 0x00000085
    /// <summary>Клавиша F23.</summary>
    F23 = F21 | RButton, // 0x00000086
    /// <summary>Клавиша F24.</summary>
    F24 = F23 | LButton, // 0x00000087
    /// <summary>Клавиша NUM LOCK.</summary>
    NumLock = F17 | ShiftKey, // 0x00000090
    /// <summary>Клавиша SCROLL LOCK.</summary>
    Scroll = NumLock | LButton, // 0x00000091
    /// <summary>Левая клавиша SHIFT.</summary>
    LShiftKey = F17 | Space, // 0x000000A0
    /// <summary>Правая клавиша SHIFT.</summary>
    RShiftKey = LShiftKey | LButton, // 0x000000A1
    /// <summary>Левая клавиша CTRL.</summary>
    LControlKey = LShiftKey | RButton, // 0x000000A2
    /// <summary>Правая клавиша CTRL.</summary>
    RControlKey = LControlKey | LButton, // 0x000000A3
    /// <summary>Левая клавиша ALT.</summary>
    LMenu = LShiftKey | MButton, // 0x000000A4
    /// <summary>Правая клавиша ALT.</summary>
    RMenu = LMenu | LButton, // 0x000000A5
    /// <summary>
    ///   Клавиша возврата обозревателя (Windows 2000 или более поздней версии).
    /// </summary>
    BrowserBack = LMenu | RButton, // 0x000000A6
    /// <summary>
    ///   Ключ прямой браузера (Windows 2000 или более поздней версии).
    /// </summary>
    BrowserForward = BrowserBack | LButton, // 0x000000A7
    /// <summary>
    ///   Клавиша обновления обозревателя (Windows 2000 или более поздней версии).
    /// </summary>
    BrowserRefresh = LShiftKey | Back, // 0x000000A8
    /// <summary>
    ///   Клавиша остановки обозревателя (Windows 2000 или более поздней версии).
    /// </summary>
    BrowserStop = BrowserRefresh | LButton, // 0x000000A9
    /// <summary>
    ///   Клавиша поиска обозревателя (Windows 2000 или более поздней версии).
    /// </summary>
    BrowserSearch = BrowserRefresh | RButton, // 0x000000AA
    /// <summary>
    ///   Клавиша браузера "Избранное" (Windows 2000 или более поздней версии).
    /// </summary>
    BrowserFavorites = BrowserSearch | LButton, // 0x000000AB
    /// <summary>
    ///   Клавиша home обозревателя (Windows 2000 или более поздней версии).
    /// </summary>
    BrowserHome = BrowserRefresh | MButton, // 0x000000AC
    /// <summary>
    ///   Клавиша выключения звука тома (Windows 2000 или более поздней версии).
    /// </summary>
    VolumeMute = BrowserHome | LButton, // 0x000000AD
    /// <summary>
    ///   (Windows 2000 или более поздней версии) клавиша уменьшения громкости.
    /// </summary>
    VolumeDown = BrowserHome | RButton, // 0x000000AE
    /// <summary>
    ///   (Windows 2000 или более поздней версии) Клавиша увеличения громкости.
    /// </summary>
    VolumeUp = VolumeDown | LButton, // 0x000000AF
    /// <summary>
    ///   Перехода к следующей записи ключа (Windows 2000 или более поздней версии).
    /// </summary>
    MediaNextTrack = LShiftKey | ShiftKey, // 0x000000B0
    /// <summary>
    ///   Перехода на предыдущую запись ключ (Windows 2000 или более поздней версии).
    /// </summary>
    MediaPreviousTrack = MediaNextTrack | LButton, // 0x000000B1
    /// <summary>
    ///   Клавиша остановки мультимедиа (Windows 2000 или более поздней версии).
    /// </summary>
    MediaStop = MediaNextTrack | RButton, // 0x000000B2
    /// <summary>
    ///   Клавиша приостановки воспроизведения (Windows 2000 или более поздней версии).
    /// </summary>
    MediaPlayPause = MediaStop | LButton, // 0x000000B3
    /// <summary>
    ///   Клавиша запуска почты (Windows 2000 или более поздней версии).
    /// </summary>
    LaunchMail = MediaNextTrack | MButton, // 0x000000B4
    /// <summary>
    ///   Выберите носитель ключ (Windows 2000 или более поздней версии).
    /// </summary>
    SelectMedia = LaunchMail | LButton, // 0x000000B5
    /// <summary>
    ///   Запуск приложения один ключ (Windows 2000 или более поздней версии).
    /// </summary>
    LaunchApplication1 = LaunchMail | RButton, // 0x000000B6
    /// <summary>
    ///   Клавиша запуска приложения два (Windows 2000 или более поздней версии).
    /// </summary>
    LaunchApplication2 = LaunchApplication1 | LButton, // 0x000000B7
    /// <summary>
    ///   Клавиша OEM с запятой на стандартной клавиатуре США (Windows 2000 или более поздней версии).
    /// </summary>
    OemSemicolon = MediaStop | Back, // 0x000000BA
    /// <summary>Клавиша OEM 1.</summary>
    Oem1 = OemSemicolon, // 0x000000BA
    /// <summary>
    ///   Клавиша плюса ПВТ на клавиатуре любой страны или региона (Windows 2000 или более поздней версии).
    /// </summary>
    Oemplus = Oem1 | LButton, // 0x000000BB
    /// <summary>
    ///   Клавиша OEM с запятой на клавиатуре любой страны или региона (Windows 2000 или более поздней версии).
    /// </summary>
    Oemcomma = LaunchMail | Back, // 0x000000BC
    /// <summary>
    ///   Клавиша OEM с минусом на клавиатуре любой страны или региона (Windows 2000 или более поздней версии).
    /// </summary>
    OemMinus = Oemcomma | LButton, // 0x000000BD
    /// <summary>
    ///   Ключ OEM периода на клавиатуре любой страны или региона (Windows 2000 или более поздней версии).
    /// </summary>
    OemPeriod = Oemcomma | RButton, // 0x000000BE
    /// <summary>
    ///   Клавиша вопросительного знака ПВТ на стандартной клавиатуре США (Windows 2000 или более поздней версии).
    /// </summary>
    OemQuestion = OemPeriod | LButton, // 0x000000BF
    /// <summary>Клавиша OEM 2.</summary>
    Oem2 = OemQuestion, // 0x000000BF
    /// <summary>
    ///   Клавиша OEM тильды на стандартной клавиатуре США (Windows 2000 или более поздней версии).
    /// </summary>
    Oemtilde = 192, // 0x000000C0
    /// <summary>Клавиша OEM 3.</summary>
    Oem3 = Oemtilde, // 0x000000C0
    /// <summary>
    ///   Клавиша OEM открывающая скобка на стандартной клавиатуре США (Windows 2000 или более поздней версии).
    /// </summary>
    OemOpenBrackets = Oem3 | Escape, // 0x000000DB
    /// <summary>Клавиша OEM 4.</summary>
    Oem4 = OemOpenBrackets, // 0x000000DB
    /// <summary>
    ///   Клавиша OEM вертикальной черты на стандартной клавиатуре США (Windows 2000 или более поздней версии).
    /// </summary>
    OemPipe = Oem3 | IMEConvert, // 0x000000DC
    /// <summary>Клавиша OEM 5.</summary>
    Oem5 = OemPipe, // 0x000000DC
    /// <summary>
    ///   Клавиша OEM закрывающая квадратная скобка на стандартной клавиатуре США (Windows 2000 или более поздней версии).
    /// </summary>
    OemCloseBrackets = Oem5 | LButton, // 0x000000DD
    /// <summary>Клавиша OEM 6.</summary>
    Oem6 = OemCloseBrackets, // 0x000000DD
    /// <summary>
    ///   OEM одинарной или двойной кавычки ключа на стандартной клавиатуре США (Windows 2000 или более поздней версии).
    /// </summary>
    OemQuotes = Oem5 | RButton, // 0x000000DE
    /// <summary>Клавиша OEM 7.</summary>
    Oem7 = OemQuotes, // 0x000000DE
    /// <summary>Клавиша OEM 8.</summary>
    Oem8 = Oem7 | LButton, // 0x000000DF
    /// <summary>
    ///   Угловой скобки ПВТ или обратной косой чертой на клавиатуре RT 102 ключа (Windows 2000 или более поздней версии).
    /// </summary>
    OemBackslash = Oem3 | PageDown, // 0x000000E2
    /// <summary>Клавиша OEM 102.</summary>
    Oem102 = OemBackslash, // 0x000000E2
    /// <summary>Клавиша ОБРАБОТКИ.</summary>
    ProcessKey = Oem3 | Left, // 0x000000E5
    /// <summary>
    ///   Используется для передачи символов Юникода в виде нажатий клавиш.
    ///    Значение клавиши пакета является младшим словом значения виртуальная клавиша 32 бита, используемый для методов ввода не клавиатуры.
    /// </summary>
    Packet = ProcessKey | RButton, // 0x000000E7
    /// <summary>Клавиша ATTN.</summary>
    Attn = Oem102 | CapsLock, // 0x000000F6
    /// <summary>Клавиша CRSEL.</summary>
    Crsel = Attn | LButton, // 0x000000F7
    /// <summary>Клавиша EXSEL.</summary>
    Exsel = Oem3 | D8, // 0x000000F8
    /// <summary>Клавиша ERASE EOF.</summary>
    EraseEof = Exsel | LButton, // 0x000000F9
    /// <summary>Клавиша PLAY.</summary>
    Play = Exsel | RButton, // 0x000000FA
    /// <summary>Клавиша ZOOM.</summary>
    Zoom = Play | LButton, // 0x000000FB
    /// <summary>
    ///   Константа, зарезервированная для использования в будущем.
    /// </summary>
    NoName = Exsel | MButton, // 0x000000FC
    /// <summary>Клавиша PA1.</summary>
    Pa1 = NoName | LButton, // 0x000000FD
    /// <summary>Клавиша CLEAR.</summary>
    OemClear = NoName | RButton, // 0x000000FE
    /// <summary>Клавиша SHIFT.</summary>
    Shift = 65536, // 0x00010000
    /// <summary>Клавиша CTRL.</summary>
    Control = 131072, // 0x00020000
    /// <summary>Клавиша модификатора ALT.</summary>
    Alt = 262144, // 0x00040000
  }

Практическое руководство. Сохранение и открытие файлов с использованием определенной кодировки

Вы можете сохранять файлы с определенной кодировкой для поддержки языков с двунаправленным письмом. Можно также указать кодировку при открытии файла, чтобы система Visual Studio отобразила его правильно.

Сохранение файла с кодировкой

В меню Файл выберите Сохранить файл как и затем нажмите кнопку раскрывающегося списка рядом с кнопкой Сохранить.

Откроется диалоговое окно Дополнительные параметры сохранения.

В разделе Кодировка выберите нужную кодировку для файла.

При необходимости в разделе Завершение строк выберите формат для знаков конца строки.

Этот параметр полезен, если предполагается обмениваться файлами с пользователями, работающими в другой операционной системе.

Если вы хотите работать с файлом, имеющим определенную кодировку, можно сообщить Visual Studio использовать эту кодировку при открытии файла. Конкретный метод зависит от того, является ли файл частью проекта.

Чтобы сохранить файл проекта с кодировкой, необходимо выгрузить проект. Только после этого станет доступна команда Сохранить файл как.

Открытие файла с кодировкой, являющегося частью проекта

В обозревателе решений щелкните файл правой кнопкой мыши и выберите команду Открыть с помощью.

В диалоговом окне Открыть с помощью выберите редактор для открытия файла.

Многие редакторы Visual Studio, такие как редактор форм, автоматически определяют кодировку и открывают файл соответствующим образом. Если вы воспользовались редактором, который позволяет указать кодировку, появляется диалоговое окно Кодировка.

В диалоговом окне Кодировка выберите кодировку, которую должен использовать редактор.

Открытие файла с кодировкой, не являющегося частью проекта

В меню Файл наведите указатель мыши на пункт Открыть, выберите элемент Файл или Файл из Интернета, а затем выберите нужный файл.

Нажмите кнопку раскрывающегося списка рядом с кнопкой Открыть и выберите пункт Открыть с помощью.

При написании программ в среде Visual studio иногда возникает необходимость вывода текста на русском языке. Казалось бы, что тут сложного? Берёшь и выводишь! А вот нет, иначе бы не было кучи форумов и страничек в интернете с этой проблемой.
А проблема заключается в кодировке, причём все сайты пишут работающие способы, но, к сожалению, далеко не у всех. В этой статье мы расскажем вам о том, как действительно нужно исправлять эту проблему.

Итак, вы написали программу, в которой решили вывести строку русскими буквами, например, «Русский язык в консоли!». Вы запускаете программу, но вместо заветной строки видите там «кракозябры»! Что же делать?

В результате видим кракозябры

Чаще всего пишут, что достаточно лишь добавить setlocale(LC_ALL, «Russian»); в начале программы (для C программ требуется подключение библиотеки locale.h: #include <locale.h> ). Сделаем это. Теперь программа должна выглядеть так:

А возможный результат может выглядеть так:

Результат может быть как корректным, так и кракозябристым

Запустим её, если русский язык уже выводится — поздравляем! Проблема решена! Если нет, то идём дальше.

В верхнем меню выберете пункт файл , Сохранить <название вашего файла> как . В открывшемся окне вместо Сохранить выберем Сохранить с кодировкой , подтвердим, что желаем заменить файлы и выберем кодировку Кириллица (Windows) — кодовая страница 1251 .

Сохраняем файл в другой кодировке

Выбираем сохранение с кодировкой

Выбираем кодировку Кириллица (Windows) - кодовая страница 1251

Нажмём ОК и соберём программу заново.

Нужная кодировка - Кириллица (Windows) - кодовая страница 1251

Запустим программу вновь и теперь русский язык будет корректно выводиться!

Программа запустилась и русский язык выводится

UPD: Ещё один способ заставить работать русский язык

Если ничего из вышеперечисленного не помогло, значит проблема в кодировке самой консоли. А её можно изменить с помощью команды system(«chcp 1251»); , то есть программа будет выглядеть так:

Программист, сооснователь programforyou.ru, в постоянном поиске новых задач и алгоритмов

Языки программирования: Python, C, C++, Pascal, C#, Javascript

Выпускник МГУ им. М.В. Ломоносова

Programforyou — это сообщество, в котором Вы можете подтянуть свои знания по программированию, узнать, как эффективно решать те или иные задачи, а также воспользоваться нашими онлайн сервисами.

Собственно, перерыл все настройки, не могу найти. Сохранять файлы в UTF-8 по-одному — не вариант. Подскажите.

Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.

Посмотрите другие вопросы с метками кодировка utf-8 encoding visual-studio-2019 или задайте свой вопрос.

Site design / logo © 2022 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2022.6.10.42345

Нажимая «Принять все файлы cookie», вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Время на прочтение7 мин

Количество просмотров104K

EditorConfig это конфигурационный файл и набор расширений, к большому количеству редакторов кода и IDE (Далее просто IDE).

Его задача — создать единый формат настроек, и, раз и навсегда, решить вопросы вроде “табы или пробелы” для всех IDE и всех языков программирования. Такой файл может храниться в системе контроля версий проекта, что позволит всем его разработчикам использовать одну и ту же конфигурацию.

Файлы .editorconfig можно найти в таких проектах, как jQuery, Ruby, WordPress, и многих других.

Плагины доступны для большого количество IDE

Давайте разберемся, как это работает.

Как выглядит файл EditorConfig?

Вот пример файла .editorconfig, который задает правила отступа для Python и JavaScript кода:

## Заранее извиняюсь за отсутствие нормальной подсветки синтаксиса в этом примере и далее.
## Хоть "ini" и содержится в списке форматов поддерживаемых Хабром, код красивым не становится.
## Если кто знает, как это починить - пожалуйста напишите в личку.
#
# Корневой файл EditorConfig
root = true

# Для всех файлов используем unix-совместимые переносы строк
[*]
end_of_line = lf
insert_final_newline = true

# отступы в 4 пробела
[*.py]
indent_style = space
indent_size = 4

# Используем табы для отступов (Не указываем размер)
[*.js]
indent_style = tab

# Перезависываем настройку отступов для js файлов в папке lib
[lib/**.js]
indent_style = space
indent_size = 2

# Только для файлов package.json or .travis.yml
[{package.json,.travis.yml}]
indent_style = space
indent_size = 2

Формат файла

Файлы EditorConfig используют слегка модифицированный INI формат.
Каждый .editorconfig должен быть в кодировке UTF-8, а в конце строк должно быть либо
CRLF либо LF.

В качестве имени секции выступает маска файлов, например [*.js] или [index.html].

В отличии от обычного .ini формата, в имени секции можно использовать [ и ], что позволяет указать список символов, один из которых должен находиться в указаной позиции. Например, допустимы конструкции вроде этой: [file[123].js]. Как это работает — читайте ниже.

Каждый комментарий должен быть на отдельной строке и начинаться с ; или #.

Как работает поиск файлов по маске

* - Любое количество символов кроме разделителя пути (/)

Пример: [*.js]
hello.js // Совпадение
hellojs // Нет совпадения
index.html // Нет совпадения
lib/source.js // Нет совпадения

** - Любое количество символов

Пример: [**.js]
hello.js // Совпадение
hellojs // Нет совпадения
index.html // Нет совпадения
lib/source.js // Совпадение

? - Один любой символ

Пример: [hell?.js]
hello.js // Совпадение
hell.js // Нет совпадения

[name] - Любой символ из символов содержащийся в “name”

Пример: [[abc].js]
a.js // Совпадение
b.js // Совпадение
abc.js // Нет совпадения

[!name] - Любой символ которого нету в “name”

Пример: [file[!2468].js]
file1.js // Совпадение
file2.js // Нет совпадения

{s1,s2,s3} - Любая из строк разделенных запятыми

Пример: [index.{js,html}]
index.js // Совпадение
index.html // Совпадение
package.json // Нет совпадения

\ - Экранирование служебных символов

Пример: [\[abc\].js]
a.js // Нет совпадения
[abc].js // Совпадение

Настройки

Что можно настроить?

Editor config стремится быть независимым от языков и работать во всех IDE. К сожалению это не всегда возможно, поэтому некоторые из плагинов поддерживают не все настройки. Подробнее можно узнать на странице каждого плагина в гитхабе.

Все настройки нечувствительны к регистру.

indent_style

Значения: tab, space
Позволяет задать жесткую или мягкую табуляцию для отступов.

indent_size

Значения: Число
Позволяет задать ширину отступа использовании мягкой табуляции.

tab_width

Значения: Число
Позволяет задать ширину отступа использовании жесткой табуляции. Если не задано, возьмет значение из indent_size.

end_of_line

Значения: lf, cr, crlf
Позволяет выбрать, что использовать на концах строк.

charset

Значения: latin1, utf-8, utf-8-bom, utf-16be, utf-16le
Позволяет выбрать кодировку для файлов.
Использовать utf-8-bom не рекомендуется

trim_trailing_whitespace

Значения: true, false
Позволяет убрать пробелы из концов строк.

insert_final_newline

Значения: true, false
Позволяет убедиться, что в конце файла всегда будет новая строка.

root

Значения: true, false
Специальная настройка, которая должна быть на самом верху конфига. Если установлена в true, парсер не будет искать другие конфиги родительских папках (Подробности ниже).

Специальное значение Ignore

Некоторые файлы, например сторонние библиотеки или минифицированные файлы, лучше не трогать. В таких случаях для любой настройки можно задать значение ignore. Например:

# Задаем форматирование для JS и CSS
[*.{js,css}]
indent_style = space
indent_size = 2
# Но не переформатируем минифицированные JS и CSS файлы.
[*.min.*]
indent_style = ignore
trim_trailing_whitespace = false
insert_final_newline = ignore

А почему так мало настроек?

Изначальная задача EditorConfig — создать минимальный набор свойств, который работал бы во всех основных IDE.

Задача непростая, для примера давайте рассмотрим возможность добавления настройки, которая бы ограничила ширину строки: max_line_length
Чтобы добавить эту настройку, нужно решить несколько вопросов:

  • Убедиться, что все редакторы/IDE ее поддерживают
  • Решить, использовать ли жесткий или мягкий (когда строка физически остается длинной, но выглядит как две) перенос, или позволить пользователю выбрать это, добавив еще одну настройку (не все редакторы/IDE поддерживают оба вида переноса)
  • Если использовать жесткий перенос, то что делать с языками где жесткий перенос может сломать код? (например HAML)

На данный момент свойство max_line_length существует, но работает только в vim.

Расширение EditorConfig

Если или программа, использующая EditorConfig, встречает незнакомую настройку, она должна ее проигнорировать. Это позволяет сделать формат расширяемым и не ограничиваться стандартными настройками.

Здесь есть два направления для развития:

Настройки для отдельных редакторов/IDE

Некоторые редакторы/IDE имеют свои особенности, например в jEdit набор кодировок больше, поэтому существует настройка jedit_charset, которая работает только для jedit.

Настройки для отдельных языков/расширений

Сторонние программы и плагины могут расширять EditorConfig и добавлять настройки, которые будут работать только для определенных языков или расширений файлов.

Например npm модуль CodePainter, который использует EditorConfig в качестве конфигурационного файла, позволяет выбрать кавычки (одинарные или двойные), которые будут использована для строк (qoute_type), или расставить пробелы внутри скобок (spaces_in_brackets). Но все это будет работать только для JavaScript.

Так же у разработчиков есть в планах целый набор возможных настроек, которые возможно будут использованы в будущем, например:

curly_bracket_next_line

Задает перенос фигурной скобки на следующую строчку, для языков где она есть

java_class_path

Может быть использовано другими плагинами

language

Позволяет задать язык по расширению файла. Это может помочь, когда шаблонизаторы, например Jinja2, используют файлы с расширением .html

Полный список можно посмотреть тут (eng.)

Где хранятся эти файлы?

Когда плагину нужно будет вычислить конфигурацию для файла, он будет подниматься по файловому дереву, от директории с файлом до корня, и загружать настройки из каждого .editorconfig файла на пути.
Приоритет настроек в конфигах, более близких к файлу, выше.

Для файла, с таким путем: /Users/username/code/project/main.js, плагин будет искать файл .editorconfig следющих местах:

/Users/username/code/project/.editorconfig
/Users/username/code/.editorconfig
/Users/username/.editorconfig
/Users/.editorconfig
/.editorconfig

Поиск можно остановить, задав root=true в одном из конфигов на пути.

Такая структура позволяет, например, создать .editorconfig в пользовательской папке и таким образом получить настройки по умолчанию для все проектов, и, при необходимости, переписать эти настройки на несколько уровней выше.

Как вычисляются настройки внутри файла?

Когда парсер читает файл .editorconfig, он дает больший приоритет настройкам, которые находятся ниже.
Авторы создали небольшое демо [Которое на данный момент, как заметил KindDragon, немного глючит при вычислении путей], где можно поиграться с форматом и посмотреть результат

Форматирование существующего кода

Плагины EditorConfig созданы таким образом, что они меняют настройки IDE в зависимости от окрытого файла. Иногда приходится использовать недокументрированне или необычные возможности IDE. Из-за этого форматирование применяется только при сохранении файлов, и если вы хотите использовать EditorConfig с уже существующим кодом, придется использовать один из инструментов ниже.

editorconfig-tools [ github ]

Набор инструментов для проверки и переформатирования кода. Находится на ранней стадии разработки и не пока не очень стабилен.

ECLint [ github ]

Похож по функциональности на editorconfig-tools, но, в дополнение, умеет анализировать существующий код и генерировать .editorconfig файл. Также на стадии разработки.

CodePainter [ github, npm ]

Использует .editorconfig, но работает только с JavaScript кодом.
Имеет специальные настройки для JS кода.

Плагины, как они работают и как их создавать?

В помощь создателям плагинов создан набор основных компонентов (ядер), которые могут быть использованы в плагинах и берут на себя работу по поиску и парсингуконфигурационных файлов. На данный момент существуют версии на C, Java, Python, ведется работа над JavaScript версией.

Сами плагины стараются перезаписать соответствующие настройки IDE вместо того, чтобы заниматься форматированием самим.

К сожалению, все еще не существует плагинов для такие IDE как Eclipse или NetBeans, их архитектура не позволяет легко менять настройки.

Если среди читающих есть кто-то, готовый взяться за создание плагинов, здесь неплохо расписано, как начать (eng.)

Для пользователей Windows

Чтобы создать файл .editorconfig в Windows Explorer, вам нужно создать файл с именем .editorconfig. и Windows Explorer переименует его в .editorconfig.

Ссылки и как в этом можно поучаствовать

Команда EditorConfig проделала отличную работу, но впереди еще много трудностей, интересных задач и решений:

  • Написание и поддержка плагинов для менее известных IDE.
  • Разработка ядер для плагинов на других языках и доработка текущих
  • Расширение функциональности и добавление новых настроек
  • Доработка существующих решений для трансформации кода

Если кому-то из читателей интересно было бы принять участие в работе проекта, вот хорошие способы связаться с разработчиками (все на английском):

  • Google Groups.
  • Wiki
  • Багтрекер
  • Так же был создан IRC канал EditorConfig на FreeNode, но он пока полупустой.

Я не в команде проекта, но использую .editorconfig сам и с удовольствием передам ваши предложения и пожелания — пишите в личную почту.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Ошибка xinput1 3 dll для windows 10
  • Как выключить программу из автозагрузки windows 10
  • Стоит ли доверять windows defender
  • Не завершается процесс windows
  • Windows 10 требования к системе ноутбука