Mono дебагер — это аналог с явы. Для microsoft — есть исходники дебагера на шарпе, нужно будет просто переписать с CommandLine -> transport передачу даных
Никто не говорит что все будет сразу. Вы правы, что зависит от рук. Чем больше рук тем быстрей будет.
Ах да что я забыл — я незнаю наскок реально, но как вариант я думаю лучше использовать com.intellij.psi.impl.source.resolve.reference.impl.providers.FileReferenceSet для поиска по файловой системе
Я откоментрировал пару строк. По мелочам. Будет время форкнуть плагин, опишу поправки свои — если они будут. Только форк уже в Идеи не получится потестить)
public class GenericTest
{
public static void main(String[] args)
{
Map<Integer, Long> v = new HashMap<Integer, Long>();
v.put(1, 0L);
Long val = v.isEmpty() ? 0 : v.get(2);
System.out.println(val);
}
}
Могу сказать код скомпилится на все JDK, и не выполнится на любой(тестил 6-7-8, мб и где то пофиксили но я не видел)
Немного моей истории про Форки. Тут было сказано что коммиты не засчитываются в Fork репозитарии. Это верно.
Но бывает это неудобно, когда репозитарий форкнут, но Пуллов в основной репозит не будет. Мое действие — я например в Support, и мне сбросили Fork статус
3. Light элементы — это теже элементы синтаксического дерева, ток его можно создать не через Лексику, а вручную. Зачастую ипользуется когда нужно возратить PSI елемент, который не является частью дерева.
4. Ленивые ноды, ноды которые парсятся при первом вызове. Это теже PsiFile работает через Lazy. Лейзи ноды используются например, ещё для Иньекций в основоное PSI дерево, другое PSI дерево другого языка(например JavaDoc парсинг в комментах явы)
5. В яве это сделано ибо — там есть поддержка уровней языка. Для каждого уровня — лексика немного отличается(кейворды), да и парсинг тоже.
1. Брать код и копипастить — неудобно.
2. Нету даже базового проекта — что бы потестить
3. Код, показан только важная часть — импортов нету, например я не знаю что такое EventAdmin.
Mono
вот
Microsoft исходники этого дебагера открыты
Никто не говорит что все будет сразу. Вы правы, что зависит от рук. Чем больше рук тем быстрей будет.
2. Для меня — нет. У меня все мои проекты уже в Consulo, IDEA я уже не использую. Пока приоритет это плагин.НЕТ + платформа.
(угу я знаю всю картину)
Их минус — никто не поддерживает .NET. Это печально. Но поправимо.
Был плагин fan4idea, но он старый. Его можно конечно поднять к IDEA 13, но ограничения — только Java + JS, меня это огорчает.
Тот resolving к файлу который у вас всегда создается в RequirejsPsiReferenceProvider, нужно вынести в отдельный manager.
В нем не использовать настолько прямое хранения ссылки к VirtualFIle, потом что файл может быть удален, и будет AssertError.
Мы используем com.intellij.psi.util.CachedValuesManager#createCachedValue
Ко второму — не используем Static переменные, делаем ApplicationService.
Если чтото ещё будет, я напишу
Могу сказать код скомпилится на все JDK, и не выполнится на любой(тестил 6-7-8, мб и где то пофиксили но я не видел)
Но бывает это неудобно, когда репозитарий форкнут, но Пуллов в основной репозит не будет. Мое действие — я например в Support, и мне сбросили Fork статус
Текущий мой трек. Это чисто заливы кода, Issue Tracker я не юзаю
Посмотрите com.intellij.codeInsight.lookup.LookupElementBuilder
4. Ленивые ноды, ноды которые парсятся при первом вызове. Это теже PsiFile работает через Lazy. Лейзи ноды используются например, ещё для Иньекций в основоное PSI дерево, другое PSI дерево другого языка(например JavaDoc парсинг в комментах явы)
5. В яве это сделано ибо — там есть поддержка уровней языка. Для каждого уровня — лексика немного отличается(кейворды), да и парсинг тоже.
Java имеет очень специфичную AST + PSI реализация
2. Нету даже базового проекта — что бы потестить
3. Код, показан только важная часть — импортов нету, например я не знаю что такое EventAdmin.
Спасибо