LINUX.ORG.RU

Первый релиз Snaked

 ,


0

1

После четырех недель активной разработки готова первая версия нового редактора для программистов на Python.

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

В качестве статического анализатора используется Rope, поверх которого работает модуль выведения типов на основе пользовательских правил.

Также поддерживается переход к определению символа, как явно объявленного в коде, так и написанного в комментарии или строке. Плюс удобный навигатор по модулю и линтер на основе pyflakes.

Дополнительные возможности, не связанные с редактированием исходников:

  • Ориентирован на работу с клавиатуры.
  • Два вида интерфейса: стандартный с табами и по отдельному окну на каждый редактор.
  • Умное выделение позволяет оперировать с блоками кода: определением класса или функции, группой строк, списком параметров или строковым литералом.
  • Сессии.
  • Диалог быстрого открытия файлов.

В ближайшее время будет реализована поддержка плагинов от GEdit.

Документация и скриншоты

Короткий скринкаст про переопределение типов

Надеюсь на обратную связь от пользователей, мне необходимо расставить приоритеты в дальнейшей разработке.

>>> Подробности

★★★

Проверено: Shaman007 ()
Последнее исправление: Shaman007 (всего исправлений: 6)
Ответ на: комментарий от pevzi

> Почему?

Рискну предположить, что тестами оно как-то легче.

shimon ★★★★★
()
Ответ на: комментарий от shimon

Поправил. Там дело немножко в другом было.

baverman ★★★
() автор топика
Ответ на: комментарий от anonymous

ты не нервничай так.

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

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

Не, я не нервничаю. Я огорчаюсь.

k0valenk0_igor ★★★
()
Ответ на: комментарий от shimon

Все предложения будут приняты к сведению. Главное, проблема с сохранением настроек решилась. У меня уже почти четыре утра, так что со спокойной совестью отправляюсь на боковую.

baverman ★★★
() автор топика
Ответ на: комментарий от k0valenk0_igor

> Малшик, если это инструмент программиста, то я китайский летчик. И как говорит один политик: «это ОДНОЗНАЧНО»!

Мальчик, инструментом программиста издревле является мозг.

Да где ты такие мониторы видел?! Зайди на ЛОРовские скриншоты: люди по три монитора имеют для работы с размером больше чем ты указал каждый! Не, ну это ваще даже не смешно!


У меня ноутбук с экраном именно такого размера. И им я могу пользоваться дома, на берегу реки, в купе поезда, за столиком в ресторане, лежа на диване. И ЛОРовские скриншоты для меня не авторитет, потому что это вопрос _моей_ работы и _моего_ личного удобства.

Ноутбук, кстати, честных восемь часов работает на автономке, а его мощности мне для разработки и тестирования хватает. Поэтому менять его на что-то более громоздкое не намерен.

shimon ★★★★★
()
Ответ на: комментарий от baverman

Так вы батенька с Дальнего Востока.

Я не питонист, я только учусь, но мне нравится SPE. Жаль. что его разработка заброшена.

anonymous
()
Ответ на: комментарий от baverman

спасибо. Попробую, вдруг понравится. Еще не нашел себе уютной среды для написания хэлловордов на питоне :)

Underwest
()
Ответ на: комментарий от shimon

с экраном именно такого размера

Я не экономлю на мониторах.

Но я, как ты правильно заметил, «не целевая» аудитория. Мне нужен IDE по типу «все в одном», но на GTK. Что бы я программиста смог посадить за работу (и сам сесть за соседний комп) и он смог нормально работать по восемь часов, вылезая из IDE только на обеденный перерыв. Да еще что бы и тикеты в траке закрывал из IDE же. А пока они (программисты) мне сру..т в моск по поводу нехватки функционала, а единственно что их устроило (да и то частично) - Eric.

k0valenk0_igor ★★★
()
Ответ на: комментарий от baverman

> Жирный

Неправда ваша. По нонешним временам emacs --- лёгкое и быстрое приложение.

монстр

вот здесь хотелось бы подробностей

на изучение которого надо потратить 100 часов.

Богатство возможностей подразумевает время, необходимое для освоения этого функционала. А как же иначе? Если же использовать emacs в режиме ноутпаде.экзе, тогда и сто часов сокращается до пяти минут.

не гарантирует легкой адаптации к любым задачам.

А ещё он кофе готовить не умеет.

впустую разбрасываться временем.

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

ugoday ★★★★★
()
Ответ на: комментарий от k0valenk0_igor

сертифицированный SLES администратор к0валенк0 игорёк подрабатывает быдлокодингом быдлосайтов? ай да игорёк!

anonymous
()
Ответ на: комментарий от anonymous

Почему именно GTK?

По причине возможности нормальной работы в сильно облегченных DE.

А какой еще инструментарий вы пробовали?

А что их так много?! Я вот знаю всего два. Ну, хорошо, три... с натяжкой (это про Enlightenment речь)

k0valenk0_igor ★★★
()
Ответ на: комментарий от anonymous

быдлокодингом

А ты мой код видел, что бы быдлом обзывать?

быдлосайтов

А с какого перепуга кто-то решил что django - инструмент только для построения сайтов?! Это еще и инструмент для создания веб-оболочек и прекрасное средство для интеграции.

А кроме того, я не вижу в сайтостроительстве чего-то зазорного.

k0valenk0_igor ★★★
()

Хорошее начинание )

Как настраивать цветовые темы?

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

Переключение табов по ctrl-tab в порядке их последнего посещения.

kostoprav
()
Ответ на: комментарий от k0valenk0_igor

> Да где ты такие мониторы видел?

Я бы к примеру не отказался для редактора на 800x480, для телефончика.

По функционалу: где работа с системами управления исходным кодом? Где поддержка основных фреймворков (как минимум Django)? Сессии... гм... ну ладно, пусть это (не завязанное на svn/git/mercurial) будут сессии. Где работа с тест-юнитами? Где закладки? Где визуальный отладчик? Где... да это можно бесконечно перечислять!

Милые требования к редактору сурсов.

sv75 ★★★★★
()
Ответ на: комментарий от k0valenk0_igor

> Мне нужен IDE по типу «все в одном», но на GTK

Ну, Еклипс уже есть вот. Вам в его багзиллу (и в плагины) с дальнейшими пожеланиями %)

Да еще что бы и тикеты в траке закрывал из IDE же. А пока они (программисты) мне сру..т в моск по поводу нехватки функционала

Э... ну ты скажи им, чтобы они просто работали вместо срача. Или переходите на MSVS/C#, что ли.

sv75 ★★★★★
()
Ответ на: комментарий от k0valenk0_igor

>что бы онаружить что эрик больше мою цветовую схему не кажет
Ха-ха-ха! Жри свой кактус.
И писать грамотно научись.

anonymous
()
Ответ на: комментарий от k0valenk0_igor

> А ты мой код видел, что бы быдлом обзывать?

Ну, раз вы юнит-тесты называете тест-юнитами, то легко сложить два и два, я считаю.

А с какого перепуга кто-то решил что django - инструмент только для построения сайтов?! Это еще и инструмент для создания веб-оболочек и


Как будто сайт — не частный случай веб-оболочки. Или там наоборот, в зависимости от того, какое у вас вероисповедание.

прекрасное средство для интеграции.


Кого с кем? Ежей с ужами? Сисек с письками? Раз вы так самоуверены, мой юный падаван, извольте привести конкретику, а не маркетологический винегрет. Вы, изволю напомнить, не на том ресурсе, чтобы безапелляционно бросаться яркими фразами.

shimon ★★★★★
()
Ответ на: комментарий от k0valenk0_igor

> Да еще что бы и тикеты в траке закрывал из IDE же.

Тикеты по коммитлогу VCS должна закрывать, особенно — раз там трак.

shimon ★★★★★
()
Ответ на: комментарий от k0valenk0_igor

> Я не экономлю на мониторах.

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

Но я, как ты правильно заметил, «не целевая» аудитория.


Тогда зачем ты здесь? Думаешь, всем твои выкрики интересны? Думаешь, все должны обложиться свистоперделками и все делать из IDE, которая только разве задницу не подтирает? Я свой инструмент нашел. И, благо написан он на том языке, на котором я программирую, я легко могу исправлять в нем ошибки и доштуковывать то, до чего основному автору руки не доходят. А вот зачем носиться с криками «ну это же не Emacs», «ну это же не Eric», «ну это же не моя любимая херня с горы», я слабо понимаю.

shimon ★★★★★
()
Ответ на: комментарий от ugoday

Я не согласен с автором в том, что Emacs жирен и неповоротлив. Но не могу не отметить, что мне Emacs был бы милее, если бы был написан на Python. ;-)

Унификация, только и всего.

Впрочем, что-либо похожее на Org-mode вряд ли скоро появится где-либо еще, не могу не признать.

shimon ★★★★★
()

ТС, хотел бы тебя поддержать. Сам юзаю vim и geany. Но ваш проект мне крайне интересен. Кстати, а как запускать скрипт из под него? Проверка синтаксиса?

atommixz
()
Ответ на: комментарий от shimon

Ну, раз вы юнит-тесты называете тест-юнитами, то легко сложить два и два, я считаю.

Да считай сколько угодно! От того что я вместо «тест-юнит» скажу doctest не сильно что изменится. Ну, прибавится терминологической путаницы, пожалуй.

прекрасное средство для интеграции.

Кого с кем? Ежей с ужами? Сисек с письками? Раз вы так самоуверены, мой юный падаван, извольте привести конкретику, а не маркетологический винегрет. Вы, изволю напомнить, не на том ресурсе, чтобы безапелляционно бросаться яркими фразами.

Вообще-то тут много чего можно сказать, но для вас, я полагаю, будет достаточно и такого примера: элемент документооборота. На практике это выглядит так: берем djcelery и собираем данные из территориально-разрозненных источников (при этом RabbitMQ гарантирует, что данные будут целостные и не будет потерь), формируем электронный документ и предоставляем его как RESTfull веб-сервис. И для всего этого django подходит великолепно, могу вас заверить, мой юный петушок. А свои «сиськи с письками» оставьте для... гм... другого ресурса.

k0valenk0_igor ★★★
()
Ответ на: комментарий от shimon

Как будто сайт — не частный случай веб-оболочки. Или там наоборот, в зависимости от того, какое у вас вероисповедание.

Не передергивайте. В данном контексте, мое вероисповедание говорит, что веб-оболочка - это разновидность пользовательского интерфейса, а сайт - понятие без малого маркетологическое.

k0valenk0_igor ★★★
()
Ответ на: комментарий от pevzi

> А до snaked ты чем пользовался? Под линуксом, я имею в виду.

Emacs.

shimon ★★★★★
()
Ответ на: комментарий от k0valenk0_igor

> Не передергивайте. В данном контексте, мое вероисповедание говорит, что веб-оболочка - это разновидность пользовательского интерфейса, а сайт - понятие без малого маркетологическое.

С технической точки зрения — разницы нет.

shimon ★★★★★
()
Ответ на: комментарий от shimon

http://peppy.flipturn.org/

(ap)Proximated (x)Emacs Powered by Python. — an XEmacs-like editor in Python. While it does emphasize source code editing, it's also an extensible framework in Python that can support editing and viewing many different types of files, not just text files.

http://github.com/pinard/Pymacs

Pymacs is a powerful tool which, once started from Emacs, allows both-way communication between Emacs Lisp and Python.

[/thread]

anonymous
()
Ответ на: комментарий от anonymous

>покиньте, пожалуйста, linux.org.ru. спасибо.

Спасибо, анон, ты добр.

Toll ★★
()

эээх, свои велосипеды это хорошо, но лучше бы кто-нибудь улучшал существующие или писал новые инструменты для поддержки питона в емаксе :) А то и вовсе с cedet подружил...

Zubchick
()
Ответ на: Хорошее начинание ) от kostoprav

Как настраивать цветовые темы?

Куцое формальное описание схемы.

Легче брать готовую из /usr/share/gtksourceview-2.0/styles/ и модифицировать под себя.

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

Автоматическое открытие предыдущей сделаю, но вот создание в рантайме мне лично совсем не нравится, поэтому в очереди тасков будет совсем не на первом месте.

Переключение табов по ctrl-tab в порядке их последнего посещения.

Ok.

baverman ★★★
() автор топика
Ответ на: комментарий от atommixz

Кстати, а как запускать скрипт из под него?

Никак. И очень сомневаюсь в нужности в дальнейшем. Единственное преимущество встроенной консоли — можно по клику по трейсбэкам переходить на соответствующее место в коде.

Проверка синтаксиса?

При первом открытии файла и при его сохранении. Нужен установленный pyflakes. Проверяются неиспользуемые и не объявленные переменные и вскакивает попап при ошибке синтаксиса.

baverman ★★★
() автор топика
Ответ на: комментарий от baverman

>> модальное редактирование.

Like in vim?

Присоединяюсь. И хотя бы базовые вимовские биндинги хотелось бы.

anonymous
()
Ответ на: комментарий от anonymous

Да, и еще: хорошо бы поддержку virtualenv

Достаточно объемная работа.

Но сейчас можно в .ropeproject/config.py вписать:

python_path = prefs.get('python_path', [])
python_path.insert(0,
    '/home/bobrov/work/new/virsot/env/lib/python2.6/site-packages/Werkzeug-0.6.2-py2.6.egg')
prefs['python_path'] = python_path

Это заставит rope использовать werkzeug из проектного virtualenv.

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

baverman ★★★
() автор топика
Ответ на: комментарий от anonymous

Или! Бредовая идея, конечно. Snaked можно установить в virtualenv. Правда немногие пойдут на замусоривание окружения посторонними пакетами.

baverman ★★★
() автор топика
Ответ на: комментарий от anonymous

И хотя бы базовые вимовские биндинги хотелось бы.

y, d, p, ctrl+a, ctrl+x, numG

Для меня базовые вот эти. Для кого-то базовые другие. Очень нечеткая формулировка.

Нормальный режим в планах после поддержки Django/Flask.

baverman ★★★
() автор топика
Ответ на: комментарий от baverman

> Ну и по аналогии с остальными пакетами. Геморно конечно, но

настраивается один раз и благополучно забывается

Да нет, нормально. Можно список из выдачи pip freeze получить. Вы бы про редактор на python.su/forum/ написали, там заинтересованных куда больше.

anonymous
()
Ответ на: комментарий от anonymous

Вы бы про редактор на python.su/forum/ написали, там заинтересованных куда больше.

Ok. Сейчас подготовлю релиз и отпишусь там. А вообще, русскоязычные сообщества даже не смотрел. Жду когда мой бложик на planet.python.org поместят.

baverman ★★★
() автор топика

Итак, товарищи, выложил очередной релиз. Видимо, это последнее сообщение в этой теме, поэтому следить за развитием проекта можно посредством:

@a_bobrov. Пока твиты преимущественно о редакторе. Но вроде начал втягиваться, поэтому, скорей всего, это выльется в ЖЖ-рак.

Поэтому есть еще и бложек.

Баги, предложения лучше оформлять на гитхабе, но если нет аккаунта, не беда — приму в любой форме: через комментарий в блоге, твит или bobrov#at#vl.ru

Еще раз спасибо за советы и пожелания.

baverman ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.