Рубрика «idea»

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

Часть 1

  • Введение

  • Предусловия

  • Создание основы языкового плагина

  • Создание PSI-дерева

  • - Лексер

  • - Парсер

  • Аннотаторы

  • Подсветка скобок

Часть 2

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

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

Краткое оглавление

Часть 1

Эту статью можно рассматривать как краткий обзор c gif-ками по рефакторингам Java-файлов в IDEA для начинающих.

Осторожно, много тяжелых gif-картинок.

Раздел «Refactor» в IDEA - 1

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” —M. Fowler (1999)

Содержание

Введение

Раздел «Refaсtor»

- Refactor This

- Rename

- Rename File Читать полностью »

IntelliJ IDEA: Structural Search & Replace - 1

Современные IDE — очень мощные инструменты, способные помогать разработчику в самых разных ситуациях. Но обратной стороной этой мощности является то, что большинство функций находится в тени — об их наличии мало кто подозревает.

Простой пример одной такой функции

А вы знаете, что, если в IDEA нажать F2, курсор перескочит к ближайшей ошибке в файле? А если нет ошибки, то к замечанию? Как-то так получается, что об этом знают далеко не все.

Одной такой функцией является Structural Search & Replace (SSR). Она может быть невероятно полезна в тех ситуациях, когда пасует всё богатое разнообразие других функций.

Несколько таких примеров я и приведу в данной статье. И чтобы не ограничиваться суррогатными случаями, буду демонстрировать эти примеры на реальном коде из двух проектов:

  1. 3D-движка для создания игр jMonkeyEngine, как пример большого проекта, в котором всегда можно найти что-то интересненькое.
  2. моего собственного проекта plantuml-native-image, в котором я провожу эксперименты по компиляции PlantUML в нативный исполняемый код с помощью GraalVM native-image.

Собственно, случай во втором проекте и побудил меня к написанию статьи. Но обо всём по порядку...

Читать полностью »

Java-дайджест за 13 апреля - 1

  • Системе контроля версий Git исполнилось 15 лет.
  • Testcontainers исполнилось целых пять лет! Testcontainers — это Java-библиотека, позволяющая делать легкие одноразовые экземпляры популярных баз данных, веб-браузеров Selenium, или чего угодно ещё, что можно запустить в Docker-контейнере.
  • Вышел долгожданный Spring Graal Native 0.6.0. Вот здесь на GitHub есть огромное количество примеров использования вместе с разными технологиями, например, Kotlin и Netty.

Читать полностью »

От переводчика: В блоге Войтеха Рузички по программированию имеется 13 постов с тегом IDEA. Один из был переведен и опубликован на Хабре — Лучшие плагины IntelliJ IDEA. Он оказася довольно популярен и я решил попробовать перевести и другие посты об IDEA. Надеюсь будут полезны для вас.

IntelliJ IDEA предлагает множество способов сравнения файлов, папок и фрагментов кода и даже синхронизации содержимого папок.

Читать полностью »

Привет! Я тружусь в команде Антиспама, и, как и у большинства бэкенд-разработчиков Badoo, большая часть времени у меня уходит на работу с PHP-кодом.

С этой работой связано много специфических проблем и задач, которые можно решить или упростить. Когда мне надоело вручную делать то, что может делать за меня IDE, я решил попробовать доработать самую распространённую в компании IDE — PhpStorm — и написать плагин, решающий рутинные задачи, упростив тем самым жизнь себе и коллегам.

Так появился плагин Badoo для PhpStorm, который мы сегодня активно используем. За несколько лет его возможности серьёзно расширились, мы его развиваем, и в этой статье я расскажу на примере наших кейсов, как адаптировать IDE под свои задачи и инструменты, и докажу, что это не так сложно, как кажется.

Избавляемся от рутины со своим плагином для PhpStorm - 1
Читать полностью »

Как сделать правильную раскраску кода на «Хабре» и почему это так сложно - 1

Несколько месяцев назад я опубликовал свой первый пост на «Хабре». Возможно, кто-то из вас заметит, что код в статье раскрашен необычным образом, а главное — раскрашен правильно, несмотря на то, что встроенный редактор текстов на сайте не поддерживает исходную разметку кода и часто подсвечивает его элементы некорректно. При этом код не вставлен картинкой, как делают некоторые совсем отчаявшиеся писатели.

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

SonarQube и IntelliJ IDEA: правильная интеграция - 1

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

На данный момент этот инструмент плотно вошёл в нашу жизнь, следя за единым стилем кода и уберегая от самых разных видов ошибок. Поиск ошибок происходит при сборке на CI или перед принятием pull request в версионное хранилище. Все найденные ошибки отображаются в Web-интерфейсе, где можно изучать их и управлять ими.

Однако беда в том, что удобный Web-интерфейс не означает удобство по устранению найденных замечаний в коде проекта. Для того, чтобы внести исправление, приходится сначала смотреть, в каком именно файле это замечание обнаружено, потом открывать этот файл и только затем вносить исправление. Так-же это приводит к тому, что разработчик узнает о проблеме с очень большим отставанием (иногда анализ в SonarQube может занимать десятки минут), что не способствует поддержанию чистоты кода.

Для того, чтобы облегчить жизнь разработчикам нашей компании, использующим IntelliJ IDEA, я составил инструкцию. А в дальнейшем понял, что она может быть полезной более широкому кругу специалистов, и решил выложить её в публичный доступ.

Читать полностью »

Привет! Представляю вашему вниманию перевод статьи "The HTML we never had" автора Сергея Кучерова.

В этом году исполняется 30 лет с тех пор, как Бернерс-Ли начал разрабатывать язык HTML. С тех пор мы прошли долгий путь, начиная с восхищения новой технологией, и заканчивая лечением интернет-зависимости и цензурой. Каких только бед не принес нам Интернет, взломанные пароли, кража личных данных, компьютерные вирусы, черви, а теперь даже вирусы-вымогатели. Вы когда-нибудь задумывались, почему Сеть до сих пор остается такой нестабильной и уязвимой? Где-то на этом длинном пути мы свернули не туда? Давайте разбираться.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js