Я всегда теряюсь в коде, поэтому сделал инструмент для лучшей навигации и поиска кода.

Он в основном анализирует все файлы кода в проекте и собирает информацию о каждом из них.

Затем он представляет контекстную информацию. Например, панировочные сухари:

(да, он поддерживает AngularJS)

Или боковая панель, которая показывает все сущности (функции, классы и т. Д.), Найденные в текущем файле (и позволяет вам перемещаться):

(да, он поддерживает импорт ES6, классы, методы и JSX)

Вы можете искать.

По имени:

По типу:

Или выполнив какой-нибудь странный глубокий поиск, например покажи мне литералы объектов, у которых свойство `color` установлено на красный"

Попробуйте сами: https://atom.io/packages/atom-lupa :)

Кроме того, поскольку мой плагин сначала индексирует все файлы в проекте (на основе filePattern в файле конфигурации), вы можете выполнять поиск по всему проекту (в настоящее время в отдельном элементе панели в Project Explorer):

«покажите мне все функции в проекте с первым аргументом с именем` err` (возможно, обратные вызовы узла). «

Хотя меня сейчас не устраивает пользовательский интерфейс / визуальная форма моего Project Explorer. Я думаю, что эта часть все еще требует дополнительной доработки / дизайна.

Но это функционально. Вы можете изучить.

Например, вы можете нажать кнопку `функция` и просмотреть все функции в проекте (даже стрелочные функции или методы ES6. Это было бы сложно с выполнением обычного поиска по тексту / регулярному выражению. Мой инструмент анализирует файлы на AST во время индексирования, чтобы он мог более разумно относиться к коду).

По сути, я хотел бы сделать что-то вроде того, что можно увидеть в среде разработки Smalltalk, например, в Squeak:

Только с более современным интерфейсом :)

Я просто думаю, что нам нужны лучшие инструменты для изучения и понимания кодовых баз (особенно, когда вы новичок в этом проекте, возможно, крупном). И нам нужны более совершенные инструменты для навигации и поиска кода :)

Что ты думаешь об этом проекте? Я хочу прочитать отзывы.

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

Хотя сейчас для меня приоритетнее JS и родственные веб-языки).

Также хочу улучшить качество пакета, исправить возможные ошибки и т. Д.

Я создал это как пакет для редактора Atom, но я хочу отделить его от Atom API, чтобы я мог легко перенести его на VSCode или сделать онлайн-демонстрацию (или плагин Chrome).

Сайт пакета:
url: https://atom.io/packages/atom-lupa

(Я назвал это Lupa, потому что на польском языке оно означает увеличительное стекло 🔍 и, в отличие от других польских слов, его, вероятно, легко произносить для иностранцев 🐶)

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

hex13 👻