Да не за что. Жаль, что таких же инопланетян как я оказалось мало. По факту, весь функционал пилится только под мои загоны, с некоторой оглядкой на человеков. Сильно не хватает собрата по разуму. Был вроде shimon, пару фишек было сделано специально для него, но куда-то исчез, наверное опять на емакс вернулся.
Поймал багу: если запускаю из домашней директории то snaked начинает дико жрать проц при попытке что-либо сделать. И при этом ещё и такое выдаёт:
snaked
Traceback (most recent call last):
File "/usr/local/lib/python2.6/dist-packages/snaked-0.4.4-py2.6.egg/snaked/util/__init__.py", line 14, in idle_callback
callable(*args, **kwargs)
File "/usr/local/lib/python2.6/dist-packages/snaked-0.4.4-py2.6.egg/snaked/core/quick_open/gui.py", line 165, in fill_with_dirs
path = os.path.readlink(path)
AttributeError: 'module' object has no attribute 'readlink'
Наложил такой патч:
--- a/snaked/core/quick_open/gui.py
+++ b/snaked/core/quick_open/gui.py
@@ -162,7 +162,7 @@ class QuickOpenDialog(BuilderAware):
for name in os.listdir(root):
path = os.path.join(root, name)
if os.path.islink(path):
- path = os.path.readlink(path)
+ path = os.readlink(path)
if os.path.isdir(path):
dirs.append(name+'/')
Перестало на консоль ругаться, но тормоза всё равно нереальные.
Натравил strace, оно постоянно папки сканит, eщё заметил что sshfs весь проц жрёт. Может какой-нить inotify(или что там щас модно) приделать? А то ппц прям, работать низзя...
По идее, проверка на симлинкость не нужна, зачем я ее сделал не знаю. Попробуй удалить ее. То есть что-то типа
for name in os.listdir(root):
path = os.path.join(root, name)
- if os.path.islink(path):
- path = os.path.readlink(path)
-
+
if os.path.isdir(path):
dirs.append(name+'/')
else:
files.append(name)
так, проблему понял. Оно наткнулось на sshfs(у меня их два, первый я убил потому что sshfs стал жрать проц, а этот не жрал) и стало дико тормозить потому что сам sshfs небыстрый. Можно ли исключить mount point-ы на нелокальных фс? Или вообще исключить всё чтоos.path.ismount(path) ... Или сделать настроечку...
Можно ли исключить mount point-ы на нелокальных фс? Или вообще исключить всё чтоos.path.ismount(path) ... Или сделать настроечку...
По идее, файлы должны находиться в «проектах», в которых нет mount пойнтов. Поиск файла не подымается выше проектной диры, что позволяет избежать проблем. Я так понимаю, по каким-то причинам в качестве проектной определилась хоумдира, поэтому он начал по ней шерстить.
я его запускаю через «run application»(менюшка по alt+F1 или alt+F2, не помню точно, у меня переназначены хоткеи) и рабочей директорией при этом становится мой хомяк. Проекты уже в папке типа ~/my_projects/project1
Можно ли как-то настроить чтобы он при запуске переходил в определённую директорию?
Вот такая штука вылезла. Однако редактор вроде как работает:
$ snaked -s crm2
$ snaked --select-session
Traceback (most recent call last):
File "/usr/local/lib/python2.6/dist-packages/snaked-0.4.4-py2.6.egg/snaked/plugins/save_positions/__init__.py", line 20, in on_editor_get_file_position
if editor.uri in prefs:
File "/usr/local/lib/python2.6/dist-packages/snaked-0.4.4-py2.6.egg/snaked/core/prefs.py", line 90, in __contains__
return self.db.has_key(self.get_key(key))
File "/usr/lib/python2.6/bsddb/__init__.py", line 304, in has_key
return _DeadlockWrap(self.db.has_key, key)
File "/usr/lib/python2.6/bsddb/dbutils.py", line 68, in DeadlockWrap
return function(*_args, **_kwargs)
TypeError: String or Integer object expected for key, unicode found
Traceback (most recent call last):
File "/usr/local/lib/python2.6/dist-packages/snaked-0.4.4-py2.6.egg/snaked/plugins/save_positions/__init__.py", line 20, in on_editor_get_file_position
if editor.uri in prefs:
File "/usr/local/lib/python2.6/dist-packages/snaked-0.4.4-py2.6.egg/snaked/core/prefs.py", line 90, in __contains__
return self.db.has_key(self.get_key(key))
File "/usr/lib/python2.6/bsddb/__init__.py", line 304, in has_key
return _DeadlockWrap(self.db.has_key, key)
File "/usr/lib/python2.6/bsddb/dbutils.py", line 68, in DeadlockWrap
return function(*_args, **_kwargs)
TypeError: String or Integer object expected for key, unicode found
Если честно, там далеко не вся инфа. А которая есть довольно сумбурна, поэтому совсем неудивительно, что новые пользователи сталкиваются с, гхм-гхм, некоторыми трудностями.
А комплишоны для Django и PyGTK для обычной верёвки годятся?
Ну, я их гвоздями не прибивал, о редакторе провайдеры хинтов ничего не знают и опираются только на rope. Поэтому можешь глянуть тесты, test_djangohints.py или test_pygtkhints.py, там все просто. Никаких проблем вкорячить их в ropevim быть не должно.