FarNet — плагин для написания плагинов на .NET языках

Здесь можно обсудить ваш любимый плагин.
User avatar
Вадим Захаренко
Posts: 922
Joined: Fri 18 Mar, 2005 08:59
Location: Беларусь, Мозырь
Has thanked: 7 times
Contact:

Post by Вадим Захаренко » Sat 30 Dec, 2006 09:59

Latest post of the previous page:

NightRoman
Кстати вышел уже 3-й Framework

VictorVG
Posts: 23
Joined: Fri 10 Mar, 2006 01:46

Post by VictorVG » Sun 31 Dec, 2006 00:08

В стандартном варианте Far 1.71.2160 вылетает при подключения данного плагина с сообщением о неопределённом исключении. После его удаления всё работает.

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Post by NightRoman » Sun 31 Dec, 2006 09:51

VictorVG

Я пока не ставлю 1.71.2160 (ибо напугали статусом "только тестирование"). Сам на предыдущей версии 1.71 alpha 3 (build 2126).
После его удаления всё работает.
Немного непонятно. После удаления плагина работает Фар или после удаления сообщения работает плагин? Все работает только в этой сессии Фара? То есть при следующем запуске опять проблемы или они только при самом первом запуске Фара после установки плагина?

mugz
Posts: 175
Joined: Thu 02 Jun, 2005 13:36
Contact:

Post by mugz » Sun 31 Dec, 2006 14:52

Роман, может выложишь текущие бинарники сюда?

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Post by NightRoman » Sun 31 Dec, 2006 17:33

Так они уже выложены на форуме тут:
http://forum.farmanager.com/viewtopic.php?p=18281#18281

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Post by NightRoman » Fri 05 Jan, 2007 03:39


User avatar
t-rex
Страшный и ужасный
Posts: 4903
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 3 times
Contact:

Post by t-rex » Fri 05 Jan, 2007 04:40

Может перенести эту ветку в обсуждение плагинов и открыть там также ветку по powershell если надо и писать уже всё туда а не в десяти местах на форуме?

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Post by NightRoman » Fri 05 Jan, 2007 10:55

Наверное, во всяком случае это будет по существующим правилам. Тут эта ветка как-то исторически образовалась, поэтому я уж сюда и писал.

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Post by NightRoman » Thu 11 Jan, 2007 19:19

Приближается версия Far.Net с вполне реализованной функциональностью редактора (надеюсь, на этой неделе в выходные).

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

В различных объектах редактора используется свойство Text, которое имеет различный тип в зависимости от объекта. В одних случаях это IStrings (в сущности список strings), в других случаях это string. Там, где Text это IStrings, по соседству существует свойство AsString, которое string. А там, где Text это string, исторически тоже существует свойство AsString, которое просто дублирует Text.

Кажется, это немного запутано с точки зрения понимания, стиля и даже удобства (неудобно двойное свойcтво string Text и AsString, например, в PowerShell, так как при выводе данных объекта ILine один и тот же текст выводится дважды, свойства-то два, хоть они и одинаковые). Да и двойное слово AsString неудобно для написания в таких чрезвычайно часто используемых операциях, как получение\запись содержимого редактора, выделенного текста или отдельной строки или выделенной части строки. (Прим.: во всем .NET я не нашел свойства, названного AsString, свойств же Text, которые string - полно).

Предложение такое: свойство Text - это всегда string (в ILines - это объединенный текст всех строк, в ILine - это текст самой строки), а свойство типа IStrings назовем, скажем, Strings, то есть:

Code: Select all

ILine // было
	property string Text
	property string AsString

ILine // будет
	property string Text


ILines // было
	property string AsString
	property IStrings Text // имя не звучит как коллекция, хотя это коллекция строк

ILines // будет
	property string Text
	property IStrings Strings // теперь это звучит как коллекция, чем и является

Кроме того, уже давно существует свойство Lines для ILines, поэтому Strings для IStrings будет в том же стиле.

Если возражений нет, в следующей версии будет так.

mugz
Posts: 175
Joined: Thu 02 Jun, 2005 13:36
Contact:

Выложены исходники

Post by mugz » Fri 02 Feb, 2007 15:04

см. http://code.google.com/p/farnet/

пока только 3.2.6 - надеюсь, Роман в ближаешее время выложит более новую версию

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Post by NightRoman » Fri 02 Feb, 2007 15:23

Сейчас там исходники 3.2.8 (в Download). Но кандидатом на релиз, если так можно сказать, будет следующая версия 3.2.9, ее пока нет, надеюсь, будет в выходные.

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Post by NightRoman » Mon 19 Feb, 2007 13:01

В Far.NET 3.3.1 фактически функциональность диалогов в основном реализована. Однако по мелочам там еще много и долго можно чего доделывать. Я этим занимаюсь, однако либо в случайном порядке, либо по моим потребностям (их почти нет). Поэтому, если есть пожелания, что реализовать в первую очередь - не стесняйтесть, пишите. Так и правильнее будет - реализовать именно то, что кому-то надо и кем-то сразу будет проверено\протестировано.

User avatar
Вадим Захаренко
Posts: 922
Joined: Fri 18 Mar, 2005 08:59
Location: Беларусь, Мозырь
Has thanked: 7 times
Contact:

Post by Вадим Захаренко » Mon 19 Feb, 2007 14:17

NightRoman
Может быть переименовать расширение
с *-.ps1 в *.psf ?

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Post by NightRoman » Mon 19 Feb, 2007 14:51

Вадим Захаренко
(вообще-то это по другому плагину предложение...)

Это нет. Не потому, что кому-то нравится-не-нравится. PowerShell запускает ТОЛЬКО .ps1 файлы. Такая у них политика. А суффикс "-" это уже было сделано по моему вкусу - но это каждый у себя может поменять, ничто этому не мешает абсолютно.

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Post by NightRoman » Wed 21 Feb, 2007 15:14

Планы на следующую версию (или одну из них).

Собираюсь преобразовать интерфейсы примитивных типов к структурам (value типам, передаваемым по значению). Кандидаты на это преобразование - курсор редактора в первую очередь и, может, геометрические типы во вторую (IRect, IStream; IPoint уже переделан в struct Point).

Подход с интерфейсами, конечно, имеет плюсы, но для примитивных типов данных скорей больше минусов. Производительность в первую очередь приходит на ум, но это даже не главное. Главней неинтуитивность некоторых операций и прочие неудобства, например, очень неудобно сохранять данные таких типов (например IEditor.Cursor дает не копию данных курсора, а объект динамически привязанный к редактору). Неудобно и то, что изменение и даже чтение нескольких свойст подряд (строка и позиция курсора) приведут к нескольким вызовам Far API, хотя операции (получить\переместить курсор) атоммарные, по сути.

В случае с курсором будет так (PowerShell код для простоты):

Code: Select all

# получили курсор, это копия текущих данных
# (раньше это была привязка к реальному курсору)
$cursor = $editor.cursor

# делаем, что хотим с копией, это не влияет на редактор
# (раньше это отражалось автоматически в редакторе)
$cursor.Pos = ...
$cursor.Line = ...
....

# устанавливаем измененный или просто сохраненный курсор
# (раньше такого присвоения не предполагалось)
$editor.cursor = $cursor
Реализация может будет и другой слегка, еще подумаю, как подружить гладко Pos и TabPos в курсоре (может заведу два типа курсора, не мудря, или даже будет несколько свойств, например, Point Cursor, Point TabCursor - просто точки (для большинства операций этого достаточно), Cursor Frame - это полная инфа о куске редактора на экране; ну и соответственно они get\set для применения по схеме читаем\меняем или храним\присваиваем обратно).

Критикуйте. Если возражений нет, буду это дело дальше думать и, возможно, воплощать.

User avatar
t-rex
Страшный и ужасный
Posts: 4903
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 3 times
Contact:

Post by t-rex » Wed 14 Mar, 2007 00:46

NightRoman
У тебя тут пользователь появился, и ему надо немного помощи. Загляни на анг форум http://enforum.farmanager.com/viewtopic.php?p=1457#1457

mugz
Posts: 175
Joined: Thu 02 Jun, 2005 13:36
Contact:

Post by mugz » Wed 14 Mar, 2007 22:32


Post Reply

Return to “Обсуждение плагинов”