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

Здесь можно обсудить ваш любимый плагин.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Post by NightRoman »

Latest post of the previous page:

Ага, недоглядел - проверил, работает. Что ж, это нормальный вариант, во всяком случае, функциональность не страдает.

Про выкладывание доработок - принципиальный фикс требуется только один - удалить странное свойство lines из FarManager.Impl.BaseEditor, которое дублирует Lines и нарушает CLS compliant правила, что для PS, оказалось, фатально.

Стоит ли мне выкладывать (я еще и не знаю, как) это одно примитивное изменение? Может, кто-нибудь это просто сделает? Ну или посоветуйте, как я могу выложить.

Остальные доработки, которые мы обсуждали - не принципиальные пока, а просто улучшения PS синтаксиса для доступа к Far.Net (сейчас вместо свойств надо использовать get_X\set_X).

Кстати, плагин PowerShellFar должен работать и без этого фикса, только к редактору доступ не будет работать (ну и еще то, что с подозрением на проблемы перевода Far.Net на .Net 2.0).
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Post by NightRoman »

Точнее, 2 изменения:

1) удалить в FarDotNetStruct\Editor.cs свойство lines (в нижнем регистре!):

Code: Select all

		virtual public ILines lines {
			get {
				return null;
			}
		}
2) изменить в FarNetPlugin\Selection.cpp метод SelectionImpl::get_Count на

Code: Select all

int SelectionImpl::get_Count(void){
	ITwoPoint *shape=__try_cast<ITwoPoint *>(Shape);
	if(shape==NULL)
		return 0;
	return shape->Height;
}
Кто с исходниками, может сам у себя поправить. А в сорс-базе, может, кто-то это исправит?
User avatar
Вадим Захаренко
Posts: 922
Joined: Fri 18 Mar, 2005 08:59
Location: Беларусь, Мозырь
Has thanked: 7 times
Contact:

Post by Вадим Захаренко »

NightRoman
Кстати вышел уже 3-й Framework
VictorVG
Posts: 23
Joined: Fri 10 Mar, 2006 01:46

Post by VictorVG »

В стандартном варианте Far 1.71.2160 вылетает при подключения данного плагина с сообщением о неопределённом исключении. После его удаления всё работает.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Post by NightRoman »

VictorVG

Я пока не ставлю 1.71.2160 (ибо напугали статусом "только тестирование"). Сам на предыдущей версии 1.71 alpha 3 (build 2126).
После его удаления всё работает.
Немного непонятно. После удаления плагина работает Фар или после удаления сообщения работает плагин? Все работает только в этой сессии Фара? То есть при следующем запуске опять проблемы или они только при самом первом запуске Фара после установки плагина?
mugz
Posts: 181
Joined: Thu 02 Jun, 2005 13:36
Contact:

Post by mugz »

Роман, может выложишь текущие бинарники сюда?
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Post by NightRoman »

Так они уже выложены на форуме тут:
http://forum.farmanager.com/viewtopic.php?p=18281#18281
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Post by NightRoman »

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

Post by t-rex »

Может перенести эту ветку в обсуждение плагинов и открыть там также ветку по powershell если надо и писать уже всё туда а не в десяти местах на форуме?
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Post by NightRoman »

Наверное, во всяком случае это будет по существующим правилам. Тут эта ветка как-то исторически образовалась, поэтому я уж сюда и писал.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Post by NightRoman »

Приближается версия 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: 181
Joined: Thu 02 Jun, 2005 13:36
Contact:

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

Post by mugz »

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

пока только 3.2.6 - надеюсь, Роман в ближаешее время выложит более новую версию
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Post by NightRoman »

Сейчас там исходники 3.2.8 (в Download). Но кандидатом на релиз, если так можно сказать, будет следующая версия 3.2.9, ее пока нет, надеюсь, будет в выходные.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Post by NightRoman »

В Far.NET 3.3.1 фактически функциональность диалогов в основном реализована. Однако по мелочам там еще много и долго можно чего доделывать. Я этим занимаюсь, однако либо в случайном порядке, либо по моим потребностям (их почти нет). Поэтому, если есть пожелания, что реализовать в первую очередь - не стесняйтесть, пишите. Так и правильнее будет - реализовать именно то, что кому-то надо и кем-то сразу будет проверено\протестировано.
User avatar
Вадим Захаренко
Posts: 922
Joined: Fri 18 Mar, 2005 08:59
Location: Беларусь, Мозырь
Has thanked: 7 times
Contact:

Post by Вадим Захаренко »

NightRoman
Может быть переименовать расширение
с *-.ps1 в *.psf ?
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Post by NightRoman »

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

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

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