Как отключить форматировщик кода Eclipse для определенных разделов кода Java?

сделать более понятное для человека решение

blockquote>

Извините, это лучшее, что я могу сделать с вашим требованием.

SQL Fiddle

Настройка схемы MS SQL Server 2008:

create table YourTable
(
  ParentID int,
  ChildName varchar(10)
);

insert into YourTable values
(1, 'Max'),
(1, 'Jessie'),
(2, 'Steven'),
(2, 'Lucy'),
(2, 'Jake'),
(3, 'Mark');

Запрос 1:

with T as 
(
  select ParentID,
         ChildName,
         row_number() over(partition by ParentID order by ChildName) as rn,
         count(*) over(partition by ParentID) as cc
  from YourTable
)
select T1.ParentID,
       (
         select case
                  when T2.rn = 1 and T2.cc > 1 then ' and '
                  else ', ' 
                end + T2.ChildName
         from T as T2
         where T1.ParentID = T2.ParentID
         order by T2.rn desc
         for xml path(''), type
       ).value('substring(text()[1], 3)', 'varchar(max)') as ChildNames
from T as T1
group by T1.ParentID

Результаты :

| PARENTID |            CHILDNAMES |
------------------------------------
|        1 |        Max and Jessie |
|        2 | Steven, Lucy and Jake |
|        3 |                  Mark |
469
задан msrd0 19 October 2014 в 15:32
поделиться

5 ответов

Eclipse 3.6 позволяет отключать форматирование, помещая специальный комментарий, например

// @formatter:off
...
// @formatter:on

. Функции включения / выключения должны быть включены в настройках Eclipse: Java > Стиль кода > Средство форматирования . Нажмите Изменить , Выключить / включить теги , включить Включить выключить / включить теги .

Также можно изменить магические строки в настройках - ознакомьтесь с документацией по Eclipse 3.6 здесь .

Дополнительная информация

Java > Стиль кода > Форматирование > Редактировать > Теги выкл. / Вкл.

Это предпочтение позволяет определить один тег для отключения и один тег для включения средства форматирования (см. вкладку «Теги выключения / включения» в профиле средства форматирования):

enter image description here

Также необходимо включить флаги из Форматирование Java

845
ответ дан 22 November 2019 в 22:49
поделиться

Этот прием работает:

String x = "s" + //Formatter Hack
    "a" + //
    "c" + //
    "d";

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

-3
ответ дан 22 November 2019 в 22:49
поделиться

AFAIK из Eclipse 3.5 M4 на форматере имеет параметр «Никогда не соединять строки», который сохраняет разрывы пользовательских строк. Может быть, это то, что вы хотите.

Еще есть эта уродливая уловка

String query = //
    "SELECT FOO, BAR, BAZ" + //
    "  FROM ABC"           + //
    " WHERE BAR > 4";
59
ответ дан 22 November 2019 в 22:49
поделиться

Если вы поставите знак плюса в начале строки, она отформатируется по-другому:

String query = 
    "SELECT FOO, BAR, BAZ" 
    +    "  FROM ABC"           
    +    " WHERE BAR > 4";
14
ответ дан 22 November 2019 в 22:49
поделиться

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

    final String sql = "SELECT v.value FROM properties p               "
            + "JOIN property_values v ON p.property_id = v.property_id "
            + "WHERE p.product_id = ?                                  "
            + "AND v.value        IS NOT NULL                          ";
5
ответ дан 22 November 2019 в 22:49
поделиться
Другие вопросы по тегам:

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