Ошибка в visual studio требуется фигурная скобка

Обновлено: 06.07.2024

В предыдущих версиях Visual Studio я всегда программировал как Automatic brace completion , так и Automatically format completed block on > отключено.

В предыдущих версиях при создании блока фигурные скобки автоматически форматировались при вводе enter

В VS 2015 это приведет к

Есть ли новая настройка, которую я пропускаю, или это ошибка в RC?

1 ответ

Хорошо, я проверил это. Результат кажется довольно очевидным - вы сказали Visual Studio не отформатировать код в > , так что это не так. не делай этого.

Другими словами, поведение в более старых визуальных студиях кажется нарушенным - даже если вы указали, что не хотите, чтобы VS выполнял форматирование за вас, это так. В конце концов, когда вы печатаете, ваш курсор оказывается в _ здесь:

Затем вы просто добавляете > , так что это

Какой старый Visual Studio автоматически форматирует как

даже если вы не отметили Automatically format completed block on > . Это, очевидно, автоматическое форматирование - если вы нажмете Ctrl+Z , будет восстановлено форматирование, а не > сам. Возможно, поведение в VS2015 является исправлением ошибки, присутствующей в старых версиях.

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

на VS2013! Это явно неправильно. С другой стороны, VS2015 правильно применяет без форматирования - он просто помещает вашу каретку в то место, которое считает нужным вам, и не применяет никакого форматирования автоматически, никогда.

Итак, есть ли способ вернуться к старому поведению? Ничего простого, я боюсь - я предполагаю, что MS просто считает, что это правильное поведение, а старое - глючное, и с этим трудно поспорить. Есть некоторые обходные пути, которые вы можете сделать, чтобы приблизиться к старому поведению, например, вручную отключить все автоматическое форматирование , кроме для выравнивания фигурных скобок, но это все равно немного изменит поведение.

Тем не менее, я вижу, какое поведение вы ожидаете, было бы желательно. Если вы считаете, что это того стоит, вы можете попытаться зарегистрировать это как ошибку на Connect, хотя я бы не дал ему шансов быть «исправленным» - IMO - это исправление ошибки, а не ошибки.

Скажем, я напечатаю следующий код и отформатирую его.

Если это JavaScript, VSCode форматирует его следующим образом:

Итак, как я могу использовать первый стиль форматирования (фигурные скобки для новых строк) для всех языков? Я не могу найти настройки или что-то подобное. Предложения?

У фигурной скобки на следующей строке есть побочные эффекты в Javascript, она должна быть на той же строке, по мне, настройки для форматирования кода должны быть такими, как есть @Tushar Тушар правда? Я думал, что это просто форматирование. Можете ли вы сослаться на некоторые статьи или привести простой пример? Это потому, что точка с запятой не является обязательной в JS, поэтому, если вы поместите свою фигурную скобку в следующую строку, как интерпретатор узнает, если вы забыли точку с запятой или если вы все еще используете одно и то же выражение в некоторых неоднозначных случаях? источник . Конфигурирование форматирования - это личное, некоторые любят ставить открытые скобки на новой строке, другие любят ставить их на одной строке. Сказать что-то вроде «в Javascript размещение открытых скобок на одной строке имеет побочный эффект» не правильно. Единственное место, где необходимо поместить открытые скобки в одну и ту же строку, - это выражение «return <. ». Во всех остальных случаях это просто отлично. В стандартах кодирования вы можете выбрать свой стиль, просто будьте согласны, если вы решили поставить открытые скобки на новую строку, будьте состоять во всем проекте.

Если вы хотите изучать javascript, я рекомендую вам прочесть книгу Дугласа Крокфорда "JavaScript: хорошие части".

Да, брандмауэр моей компании также блокирует этот домен Ответ никоим образом не связан с вопросом и на удивление принят ОП! Как это ответ на вопрос? ОП не спросил, есть ли побочные эффекты, они спросили, как заставить VS Code сделать это.

Следуйте приведенным ниже инструкциям, чтобы формат Visual Studio открывал фигурные скобки в новой строке для Java Script и Type Script.

В Visual Studio Code (v1.20.0)

Добавьте следующие строки в " Настройки пользователя " (на правой боковой панели)

Сохраните " Настройки пользователя " и все готово!

Последняя версия кода VS даже не требует набора текста! Дизайн теперь похож на: config в браузерах

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

Перейдите в File\Preferences\Settings и найдите 'curly'.

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

Не всегда обязательно определять конструктор для класса (особенно для относительно простых классов). Пользователи могут использовать для объектов класса или структур унифицированную инициализацию, как показано в следующем примере:

Обратите внимание, что если класс или структура не имеет конструктора, вы предоставляете элементы списка в том порядке, в котором элементы объявляются в классе. Если у класса есть конструктор, укажите элементы в порядке параметров. Если у типа есть конструктор по умолчанию, явно или неявно объявленный, можно использовать инициализацию скобок по умолчанию (с пустыми фигурными скобками). Например, следующий класс можно инициализировать с помощью инициализации по умолчанию и стандартной фигурной скобки:

Если класс имеет конструкторы, отличные от конструктора по умолчанию, то порядок, в котором члены класса отображаются в инициализаторе фигурных скобок, является порядком, в котором соответствующие параметры отображаются в конструкторе, а не в том порядке, в котором объявляются элементы (как class_a в предыдущем примере). В противном случае, если тип не имеет объявленного конструктора, порядок, в котором элементы отображаются в инициализаторе фигурных скобок, совпадает с порядком, в котором они объявляются. в этом случае можно инициализировать столько открытых членов, сколько нужно, но нельзя пропустить ни одного элемента. В следующем примере показан порядок, который используется в инициализации фигурных скобок при отсутствии объявленного конструктора:

Если конструктор по умолчанию объявлен явно, но помечен как удаленный, инициализацию по умолчанию нельзя использовать:

Можно использовать инициализацию фигурных скобок, где обычно выполняется инициализация, например в качестве параметра функции или возвращаемого значения или с помощью new ключевого слова:

В /std: режим c++ 17 правила инициализации пустой скобки немного более ограниченны. См. раздел производные конструкторы и расширенная агрегатная инициализация.

конструкторы initializer_list

Класс initializer_list представляет список объектов указанного типа, которые могут использоваться в конструкторе и в других контекстах. Вы можете создать initializer_list с помощью инициализации фигурных скобок:

Чтобы использовать этот класс, необходимо включить <initializer_list> заголовок.

initializer_list Можно скопировать. В этом случае члены нового списка являются ссылками на элементы исходного списка:

Классы контейнеров стандартной библиотеки, а также, string wstring и, regex имеют initializer_list конструкторы. В следующих примерах показано, как выполнить инициализацию фигурных скобок с помощью этих конструкторов:

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

Затем нажмите return, находясь между фигурными скобками класса, он сделал это :

Обратите внимание, что закрывающая скобка класса не находится под открывающей.

Как я могу иметь это вместо этого, где находится опция форматирования ?

4 ответа

Это мой первый раз, когда я использую Latex для написания письма. Я использую класс letter. Когда я использую: \address Адрес from выравнивается по правому краю. Есть ли какой-то способ сделать это выровненным по левому краю? Формат письма, которое я ищу.

Я видел, как это происходило раньше в различных версиях VS. На самом деле это не воспроизводимо, но иногда по необъяснимой причине VS просто начинает действовать таким образом.

И это автоматически выровняет весь код (и комментарии) в открытом файле. Хотя это исправит смещенные скобки после факта, это не остановит VS от того, чтобы все еще делать это.

Если это становится слишком раздражающим (а это может быть!), то вы можете сделать ctrl+a , чтобы скопировать все. Затем вставьте его в текстовый файл (чтобы случайно не потерять). Удалите файл из проекта. Затем удалите фактический файл из рабочей папки. Закройте и снова откройте VS. Затем создайте файл заново и вставьте в него все содержимое.

Это должно решить проблему.

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

Как только вы там окажетесь, если вещи будут такими, как вы хотите, измените их на что-то другое, прежде чем OK-выйти из диалога. Затем сделайте это снова и измените его обратно. Если они не соответствуют вашему желаемому стилю, просто измените вещи (идея заключается в том, что вам нужно внести изменения, чтобы ваши изменения были сохранены).

Хорошо, это появилось, но я могу ошибаться, что интеллектуальное управление вкладками изменилось в последнее время и что теперь оно больше не вставляет вкладку в начале второй пустой строки в блоке (как какой-то другой редактор кода). Поэтому оставляю только пробел на второй строке, ведущей к моему “problem”.

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

NOTE: что это происходит только при использовании опции Keep tabs

Спасибо всем, ваши комментарии приводят меня к решению (или, по крайней мере, обходному пути).

Как я могу заставить изображение в приведенном ниже html выровнять по левому краю, чтобы оно соответствовало левому краю текста заголовка и левому краю текста под ним? Когда я запускаю это изображение, оно имеет отступ в несколько пикселей, что не позволяет ему выглядеть так, как будто оно.

Похожие вопросы:

Я не могу заставить его работать с Bootstrap 3. У меня есть выровненное по центру отзывчивое изображение, подобное этому: <img center-block src=> и я хочу добавить.

Я пытаюсь сопоставить число, за которым следует закрывающая скобка: 2), но не совпадаю с числом, содержащимся в открывающей и закрывающей скобках: (2). Это regex работает, за исключением случаев.

в последние недели у меня была проблема, что в iTerm2 закрывающая фигурная скобка больше не работает. Он работает во всех других приложениях (включая Terminal), но iTerm2 не показывает фигурную.

Это мой первый раз, когда я использую Latex для написания письма. Я использую класс letter. Когда я использую: \address Адрес from выравнивается по правому.

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

У меня есть тег заголовка, и я хочу сделать небольшую рамку под заголовком. Я использую :после того, как сделать это : h1:after< content: ''; display: block; height: 4px; width: 60px; margin: 9px 0.

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

В visual studio code я хочу иметь возможность заменить запятую, за которой следует новая строка и открывающая скобка, только открывающей скобкой. Я не могу просто заменить запятую, так как в другом.


Никакая часть настоящего издания ни в каких целях не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами, будь то электронные или механические, включая фотокопирование и запись на магнитный носитель, если на это нет письменного разрешения издательства McGrow-Hill Higher Ed.

Authorized translation from the English language edition published by McGraw-Hill Companies, Copyright © 2010

All rights reserved. Except as permitted under the Copyright Act of 1976, no part of this publication may be reproduced or distributed in any form or by any means, or stored in a database or retrieval system, without the prior written permission of publisher, with the exception that the program listings may be entered, stored, and executed in a computer system, but they may not be reproduced for publication.

Russian language edition published by Williams Publishing House according to the Agreement with R&I Enterprises International, Copyright © 2011

Литературный редактор Е.П. Перестюк

Верстка А.В. Чернокозинская Художественный редактор С А. Чернокозинский Корректор АЛ. Гордиенко

Подписано в печать 17.09.2010. Формат 70x100/16. Гарнитура Times. Печать офсетная.

Уел. печ. л. 85,14. Уч.-изд. л. 51,55.

Тираж 1500 экз. Заказ № 24007.

Отпечатано по технологии CtP в ОАО 'Печатный двор' им. А. М. Горького 197110, Санкт- Петербург, Чкаловский пр., 15.

ООО 'И. Д. Вильямс', 127055, г. Москва, ул. Лесная, д. 43, стр. 1

© Издательский дом 'Вильямс', 2011 © by The McGraw-Hill Companies, 2010

Точка с запятой и оформление исходного текста программы

Управляющие последовательности символов

Поразрядные составные операторы присваивания

Объявление управляющих переменных в цикле for


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

Читайте также: