Комментарии 63
полная интеграция подразумевает отладку?
изменения хорошие, годный релиз
изменения хорошие, годный релиз
Пока что не вижу, чтобы он вышел. На сайте на данный момент доступна для скачивания только 2.0.2.
Use, Luke!
Буду ныть в каждом топике: JetBrains, сделайте IDE для Erlang'a, пожалуйста! :)
И хоть кто ни будь, сделайте для Go, хорошая штука подыхает :(
plugins.intellij.net/plugin/?idea&id=4502
Большего, сколько ни ной, не планируется. :)
Большего, сколько ни ной, не планируется. :)
интересно, а когда сделают красивые шрифты под гном( линукс )?
когда мы увидим на нем ценник
На ком? Я уже второй год плачу за PyCharm…
У меня вполне красивые шрифты под mate (linux mint)
Скидку, скидку, скидку! ))
Мои открытые проекты к сожалению не очень подходят к их требованиям (
Мои открытые проекты к сожалению не очень подходят к их требованиям (
Уже год жду простейшей, но удобной _для меня_ фичи. ⌘+L — перейти на строку предлагает выбрать номер. Хочу, нет, ТРЕБУЮ, чтобы последний введенный номер строки ЗАПОМИНАЛСЯ. И уж совсем хорошо, чтобы в combobox была ИСТОРИЯ ранее введенных номеров строк. Это ведь сильно проще чем ненужная _мне_ фича с «Удаленными интерпретаторами». Аллоэ, на барже, запилите, ибо НАДО. Без этого мне просто жизнь не мила.
PS. PyCharm естественно честно купленный. Без скидок.
Пруф:
PS. PyCharm естественно честно купленный. Без скидок.
Пруф:
Верите, нет — за те семь, кажется, лет, что я занимаюсь разработкой IDEA и PyCharm, первый раз вижу такой реквест. Может, вам на самом деле закладки нужны, а не goto line? Navigate | Bookmarks
Нет. Именно простейший GoTo Line. Просто запомните последнее значение и при следующем GoTo Line его по умолчанию подставляйте. А если сделаете историю с combobox то будет вообще чудо. Сделаете — куплю дальше и продлю лицензию. Не сделаете, буду воровать, как все, или уйду на eclipse. Заранее спасибо
Может, вы всё-таки объясните, зачем это вам?
Привык. Не надо закладки (точнее надо, конечно, но память у ⌘+L ТОЖЕ надо). Просто сделайте. Уверен что это несложно. Не берите грех на душу, не толкайте на сомнительную стезю воровства.
Если вы считаете, что шантаж — это самый осмысленный способо добиться того, чтобы в каком-то продукте сделали какую-то фичу, то вы неправы.
Мы делаем изменения в интерфейсе, чтобы решить какую-то проблему. Если мы не понимаем, в чём проблема заключается, или если мы видим, что проблему решает другая имеющаяся фича, то никаких изменений мы делать не будем. У нас тысячи открытых реквестов в трекере, очень многие из них делаются несложно, и лучше мы сделаем что-нибудь, нужное понятно зачем.
Мы делаем изменения в интерфейсе, чтобы решить какую-то проблему. Если мы не понимаем, в чём проблема заключается, или если мы видим, что проблему решает другая имеющаяся фича, то никаких изменений мы делать не будем. У нас тысячи открытых реквестов в трекере, очень многие из них делаются несложно, и лучше мы сделаем что-нибудь, нужное понятно зачем.
ok. Простой но частовстречающийся usecase.
Вывалился в консоли Exception. Скопировал номер строки, перешел на него через GotoLine. Сделал небольшое изменение, прыгнул на другую функцию в этом файле. Хочу вернуться назад. Как делаю сейчас: Переключаюсь в консоль СНОВА копирую номер строки, вставляю его в GotoLine. Как хочу делать: ⌘+L[ENTER]. Закладки не совсем то. В закладках — у меня осмысленные точки. В которые можно возвращаться больше 2х раз.
Вывалился в консоли Exception. Скопировал номер строки, перешел на него через GotoLine. Сделал небольшое изменение, прыгнул на другую функцию в этом файле. Хочу вернуться назад. Как делаю сейчас: Переключаюсь в консоль СНОВА копирую номер строки, вставляю его в GotoLine. Как хочу делать: ⌘+L[ENTER]. Закладки не совсем то. В закладках — у меня осмысленные точки. В которые можно возвращаться больше 2х раз.
Во-первых, вы можете вставлять имя файла вместе с номером строки в Goto File (например foo.html:32). Оно уже запоминает последнее значение.
Во-вторых, вы можете использовать Navigate | Back (Ctrl-Alt-Left), чтобы вернуться назад в то место, из которого вы прыгнули.
Во-вторых, вы можете использовать Navigate | Back (Ctrl-Alt-Left), чтобы вернуться назад в то место, из которого вы прыгнули.
Я поддерживаю историю по GotoLine, я об этом тоже задумывался. Back помогает, но допрыгиваю я до нужного места за более чем два прыжка.
P.S думал я один такой =)
P.S думал я один такой =)
Всё равно не понимаю. Это же совершенно бессмысленные цифры, они протухнут сразу же, как только вы хоть что-нибудь поменяете в файле.
Дело в том, что модель использования IDE для «скриптовых» языков несколько отличается от, к примеру, традиционной Java разработки. Ну да. Номер строки может немного протухнуть, а может и нет. Нам просто нужен БЫСТРЫЙ кеш последнего GoToLine. Хватит выяснять зачем да почему. Потому, что это удобно. Just Do It.
Вообще-то моего непосредственного начальника зовут Сергей Дмитриев, а не Александр Литовченко.
Это вам так кажется. В обычной обстановке, вашего непосредственного начальника, конечно могут звать как угодно. Но здесь и сейчас, решается получит ли Сергей Дмитриев от Александра Литовченко очередные $50 (а на самом деле, возможно что гораздо больше и сейчас и в перспективе) для выплаты премии по итогами квартала Дмитрию Жемерову.
Дмитрий, решайтесь же. Сделайте маленький шаг навстречу кастомеру. К черту тысячи открытых реквестов в трекере. Сделайте память для GotoLine :)
Дмитрий, решайтесь же. Сделайте маленький шаг навстречу кастомеру. К черту тысячи открытых реквестов в трекере. Сделайте память для GotoLine :)
Я не поддерживаю выше написанный шантаж =) я вас люблю за ваши продукты, но у меня лично подобное желание возникает пару раз в день, сформулировать почему и зачем сложно, но при отладке и пробеганию по коллбекам это было бы полезно. Монжо сделать эту цифру в поле выделенной, тогда это не будет мешать тем кому это не нужно, а я нажму ввод и попаду куда мне необходимо, главное показывать цифру в зависимости от активного файла. Это такая мелочь, но мне было бы приятно.
тоже нахожу реквест ну очень странным
через полчаса этот номер уже же ни о чем не будет говорить
сам пользуюсь 50% foo.html:32 и 50% Ctrl-Alt-Left (ну в паре с ctrl_alt_backspace)
через полчаса этот номер уже же ни о чем не будет говорить
сам пользуюсь 50% foo.html:32 и 50% Ctrl-Alt-Left (ну в паре с ctrl_alt_backspace)
Странный да, но в жизни пригодился бы, я бы вообще его не упомянул бы, если бы его реализация не была такой просто и не кому не мешала бы, всё что необходимо сделать это показывать предыдущий номер + сделать его выделенным. Тем кому это не надо будет так же вводить номер словно там всё таже пустая строка, а я буду жать ввод и прыгну туда куда хотел.
Как С-o, C-i в vim — действительно удобно ;-)
Для Python/Django не встречал полезней IDE. Просто фантастика. Кто ещё сомневается очень советую. Единственное, на Win синхронизация (Deployment->Download from Server) оооочень медленная после sync в Debian. Может кто знает как победить?
Шрифты эээ… страшные.
IDE очень хорошая, но почему она заметно задумывается даже на топовых железках и разных платфомах? Пробовал загружать проект на 10-15к строк и даже при печати видно какие-то задержки, мне это совсем не нравится.
На какой платформе вы исспользуете? У меня на винде и в виртуалке VmWare Workstation c Ubuntu 11.10 летает, а вот на VirtualBox с тем же Ubuntu 11.10 тупняки, причём Eclipse тоже тормозит безбожно. Есть подозрение или проблема в VirtualBox или в OpenJDK, потому как на Workstation стоит Oracle JDK 1.7.03.
Стоит версия 2.0.2, косяк следующий: открываю проект, правлю файл *.py, запускаю Run, файл компилится тот что без изменений… Очень странное поведение. Поправил код, нажал Ctrl+S (Save all, как сохранить отдельный файл (не Save as...) я не нашел), опять аналогичный бред, компилится без изменений, при нажатии на ссылку на строку с ошибкой, открывается ЕЩЕ одно вкладка с таким же файлом, который правил, только без исправлений. Объясните пожалуйста где не прав.
p.s. В EAP тоже самое.
p.s. В EAP тоже самое.
Да, еще кое-что забыл. Pycharm на все переменные аля wx.Size (100, 100), wx.ALL, wx.EXPAND из wx.Python ругается очень страшно.
А все классы:
class Test():
def __init__(self):
bla bla bla
Обзывает «старыми» и предлагает так:
class Test(object):
bla bla bla
А все классы:
class Test():
def __init__(self):
bla bla bla
Обзывает «старыми» и предлагает так:
class Test(object):
bla bla bla
У вас где-то в пути симлинк. Работу с симлинками мы сейчас переделаем, скорее всего, в финальном релизе 2.1 таких проблем больше не будет.
Возможно меня сейчас запинают, но хотелось бы Lifetime Updates и тогда покупателей будет больше. Лично я бы как студент купил студенческую лицензию, если бы не всего лишь годовая подписка на апдэйты.
А я бы хотел Community Edition, потому что использую Python редко, но после PyCharm и IDEA использовать что-либо другое не возможно!
Пока что мы не планируем такое делать. Просят такое редко, и я не думаю, что реально многие будут такой возможностью пользоваться (понятное дело, базовая цена в таком случае будет сильно выше, чем нынешняя).
ээм, а разве Community Edition не бесплатная должна быть? Endian Firewall Community Edition как пример.
Загрузил в PyCharm практически готовый проект. Провел полную инспекцию (за исключением «старых классов» и докстрингов). Вот итоги:
1.
Problem synopsis: Too broad exception clause (at line 70)
2.
Local variable 'result' might be referenced before assignment (at line 271)
3.
Problem synopsis: Local variable 'col_names' might be referenced before assignment (at line 98)
4.
В проекте хитро организован wx.listctrl. И есть такой кусок кода:
Переменная col нигде не объявляется и ниоткуда не берется, она берется сразу здесь.
Problem synopsis: Local variable 'col' might be referenced before assignment (at line 26)
5.
Problem synopsis: Unresolved attribute reference 'Show' for class 'help_frame' (at line 229)
6.
Problem synopsis: Unresolved reference 'string' (at line 199)
7.
Problem synopsis: Unresolved attribute reference 'MainLoop' for class 'PySimpleApp' (at line 72)
8.
Problem synopsis: Parameter 'event' value is not used (at line 96)
Problem synopsis: Unresolved reference 'event' (at line 98)
9.
Problem synopsis: Unexpected argument (at line 27)
Соответственно я привел по одному примеру каждого варна, а таких около 500. А теперь представьте себе работу в редакторе который справа подсвечивает около 100 варнов только в одном модуле, т.е. работа становится не возможной.
Надеюсь помог развитию проекта :)
1.
try:
index = self.list.GetFirstSelected()
self.date = self.list.GetItemText(index)
except:
print 'error'
Problem synopsis: Too broad exception clause (at line 70)
2.
try:
result = avgall / allweight
except ZeroDivisionError, info:
print info
self.data.append(str(result)) # Вот здесь ругается.
Local variable 'result' might be referenced before assignment (at line 271)
3.
def get_cols(self, table):
try:
cursor = cx_Oracle.Cursor(self.connection)
sql = ("select t.COLUMN_ID, t.COLUMN_NAME from all_tab_columns t where t.TABLE_NAME=\'%s\' order by t.COLUMN_ID") % table
cursor.execute(sql)
cuu=cursor.fetchall()
cursor.close()
col_names = [i[1] for i in cuu]
except (NameError, cx_Oracle.DatabaseError), info:
error = ("Database Error: %s" % info)
wx.MessageBox(str(error))
return col_names # Здесь ругается
Problem synopsis: Local variable 'col_names' might be referenced before assignment (at line 98)
4.
В проекте хитро организован wx.listctrl. И есть такой кусок кода:
self.columns = self.main.main_stat_columns
for col, text in enumerate(self.columns):
self.list.InsertColumn(col, text)
for item in rows:
info = '%s:(%s)' % (col, item)
data.append(info)
Переменная col нигде не объявляется и ниоткуда не берется, она берется сразу здесь.
Problem synopsis: Local variable 'col' might be referenced before assignment (at line 26)
5.
def show_help(self, event):
frame = help_frame.help_frame()
frame.Show()
Problem synopsis: Unresolved attribute reference 'Show' for class 'help_frame' (at line 229)
6.
for x in val:
if x not in string.digits:
return False
Problem synopsis: Unresolved reference 'string' (at line 199)
7.
app = wx.PySimpleApp()
dlg = MyDialog()
dlg.ShowModal()
dlg.Destroy()
app.MainLoop()
Problem synopsis: Unresolved attribute reference 'MainLoop' for class 'PySimpleApp' (at line 72)
8.
def OnExit( self, event ):
self.Destroy()
Problem synopsis: Parameter 'event' value is not used (at line 96)
def OnExit( self, event ):
self.Destroy()
event.Skip()
Problem synopsis: Unresolved reference 'event' (at line 98)
9.
wx.ALL # and etc. Все компоненты wxPython, за исключением wx.Frame and etc.
Problem synopsis: Unexpected argument (at line 27)
Соответственно я привел по одному примеру каждого варна, а таких около 500. А теперь представьте себе работу в редакторе который справа подсвечивает около 100 варнов только в одном модуле, т.е. работа становится не возможной.
Надеюсь помог развитию проекта :)
Первый пример — правильный, можете выключить inspection, если вам такая диагностика не нужна.
Второй — правильный, если вылетит exception, result будет не инициализирован.
Третий — то же самое.
Четвёртый — к сожалению, испортились инденты, но скорее всего, проблема в том, что col будет не инициализировано, если self.columns — пустой массив
5, 7, 9 — бага, неправильно построились skeletons для wx
6 — а у вас есть import string?
8 — как бы фича, у нас нету возможности понять, что метод OnExit — обработчик события и должен иметь фиксированную сигнатуру
Второй — правильный, если вылетит exception, result будет не инициализирован.
Третий — то же самое.
Четвёртый — к сожалению, испортились инденты, но скорее всего, проблема в том, что col будет не инициализировано, если self.columns — пустой массив
5, 7, 9 — бага, неправильно построились skeletons для wx
6 — а у вас есть import string?
8 — как бы фича, у нас нету возможности понять, что метод OnExit — обработчик события и должен иметь фиксированную сигнатуру
А можно как-либо настроить всплывающую подсказку, чтобы она срабатывала через delay time (около 0) после оставновки печати? А то надоедает нажимать ctrl+space.
Идеально было бы, если она показывается всегда после набора первого символа.
Идеально было бы, если она показывается всегда после набора первого символа.
Если разработчики еще читают данный пост, то (если это вообще возможно) добавьте пожалуйста в списке установленных в виртуальное окружение модулей какую-нибудь пометочку, что такой-то модуль был установлен автоматически с таким-то (как зависимость). А то установил я себе скажем requests, а он за собой еще два модуля подтянул. Потом разбирайся какой нужен, а какой нет.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Вышел новый PyCharm 2.1 Early Access Preview