Предпочтения подсветки синтаксиса Eclipse сохраняют и восстанавливают

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

objs.sort((a,b)=> fn1(a,b) || fn2(a,b) || fn3(a,b) )

Где fn1, fn2, ... являются функциями сортировки, которые возвращают [- 1,0,1]. Это приводит к «сортировке по fn1», «сортировке по fn2», которая в значительной степени равна ORDER BY в SQL.

Это решение основано на поведении оператора ||, который оценивает значение первое оцениваемое выражение, которое может быть преобразовано в true .

Простейшая форма имеет только одну встроенную функцию:

// ORDER BY last_nom
objs.sort((a,b)=> a.last_nom.localeCompare(b.last_nom) )

Имея два шага с last_nom , порядок сортировки first_nom будет выглядеть так:

// ORDER_BY last_nom, first_nom
objs.sort((a,b)=> a.last_nom.localeCompare(b.last_nom) || 
                  a.first_nom.localeCompare(b.first_nom)  )

Общая функция сравнения может быть примерно такой:

// ORDER BY 
let cmp = (a,b,n)=>a[n].localeCompare(b[n])

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

Вы можете использовать его с привязкой к ним по приоритету сортировки:

// ORDER_BY last_nom, first_nom
objs.sort((a,b)=> cmp(a,b, "last_nom") || cmp(a,b, "first_nom") )
// ORDER_BY last_nom, first_nom DESC
objs.sort((a,b)=> cmp(a,b, "last_nom") || -cmp(a,b, "first_nom") )
// ORDER_BY last_nom DESC, first_nom DESC
objs.sort((a,b)=> -cmp(a,b, "last_nom") || -cmp(a,b, "first_nom") )

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

94
задан foxdonut 16 December 2008 в 21:35
поделиться

4 ответа

Я наконец выяснил, как сделать это.

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

решение, которое работало на меня, состояло в том, чтобы скопировать эти файлы: {Eclipse workspace directory}/.metadata/.plugins/org.eclipse.core.runtime/.settings/*.prefs

я попробовал новую установку Eclipse на другой машине и после копирования тех файлов, все мои настройки были восстановлены отлично.

111
ответ дан Keith Pinson 5 November 2019 в 13:14
поделиться

Я экспортировал бы предпочтение прежде, чем изменить цвет, и затем после.

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

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

Такая стратегия может быть далее усовершенствована в несколько маленьких файлов настроек (один для Java, один для JSP, HTML, CSS...), чтобы к лучшему анализу потенциальных побочных эффектов при переимпорте тех настроек.

4
ответ дан VonC 5 November 2019 в 13:14
поделиться

Я удалил недавно измененный файл * .prefs из следующего dreictory \ myworkspace.metadata.plugins \ org.eclipse.core.runtime.settings \ и импортировал существующие экспортированные настройки.

I Я первый, кто ответит на этот вопрос, насколько мне известно :), Потому что даже я много боролся.

Спасибо

1
ответ дан 24 November 2019 в 06:03
поделиться

Eclipse CDT хранит «Раскраску синтаксиса» в файле org.eclipse.cdt.ui.prefs

Он находится, например, здесь: C: \ eclipse \ workspace.metadata.plugins \ org.eclipse.core.runtime.settings \

Скопируйте и вставьте поверх одного в свой новый экземпляр eclipse. У меня это сработало при переходе с 3.4 на 3.5

5
ответ дан 24 November 2019 в 06:03
поделиться
Другие вопросы по тегам:

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