AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

кто может написать плагин для работы с проектом?

 
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian)
View previous topic :: View next topic  
Author Message
rono



Joined: 27 Jun 2016
Posts: 6

PostPosted: Mon Jun 27, 2016 5:05 pm    Post subject: кто может написать плагин для работы с проектом? Reply with quote

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

ищу подобную программу или человека, который мог бы ее написать уже несколько лет, но все кого я спрашивал, отказываются и советуют поискать получше. В результате, нашел недавно программу zim wiki. Она создает файл проекта, без слияния остальных файлов. Казалось бы, то что нужно, но она громоздкая и подглючивает. Продолжаю поиски, на днях протестировал программу Akelpad, но такой функции не обнаружил. Хоть и увидел плагин для работы с сессиями, но это не то. Решил воспользоваться форумом. не представляю, насколько это сложно, но если кто-то заинтересовался или может посоветовать такую программу, было бы здорово.
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 6188

PostPosted: Sun Jul 03, 2016 10:04 pm    Post subject: Reply with quote

MergeProject.js
Code:
// http://akelpad.sourceforge.net/forum/viewtopic.php?t=2107
// Version: 1.0
// Author: Shengalts Aleksander aka Instructor
//
//
// Description(1033): Merge contents of all specified documents in one file.
// Description(1049): Соединить содержимое всех указанных документов в один файл.
//
// Arguments:
// -Save=false  -Read files (default).
// -Save=true   -Save files.
//
// Usage:
// "Read files" Call("Scripts::Main", 1, "MergeProject.js", `-Save=false`)
// "Save files" Call("Scripts::Main", 1, "MergeProject.js", `-Save=true`)
//
// Document format:
// ||||c:\Folder\MyFile1.txt
// Some text 1
// ||||c:\Folder\MyFile2.txt
// Some text 2...

//Arguments
var bSave=AkelPad.GetArgValue("Save", false);

//Variables
var oSys=AkelPad.SystemFunction();
var pFileText;
var pSelFile;
var pSelText;
var nInitSelStart;
var nInitSelEnd;
var nSelEnd;
var nOffset;

if (bSave)
{
  nInitSelStart=AkelPad.GetSelStart();
  nInitSelEnd=AkelPad.GetSelEnd();
}
nOffset=AkelPad.TextFind(0, "(?<=^\\|\\|\\|\\|).*?", 0x2C0001 /*FRF_DOWN|FRF_BEGINNING|FRF_REGEXPNONEWLINEDOT|FRF_REGEXP*/);
if (nOffset > -1)
{
  do
  {
    pSelFile=AkelPad.GetSelText();
    if (!bSave)
      pFileText=AkelPad.ReadFile(pSelFile);
    if (!IsFileExist(pSelFile))
    {
      WScript.Echo("Not found: " + pSelFile);
      break;
    }
    //Skip new line
    nSelEnd=AkelPad.GetSelEnd();
    AkelPad.SetSel(nSelEnd + 1, nSelEnd + 1);
    nOffset=AkelPad.TextFind(0, ".*?(?=^\\|\\|\\|\\||\\Z)", 0x80001 /*FRF_DOWN|FRF_REGEXP*/);
    if (!bSave)
      AkelPad.ReplaceSel(pFileText);
    else
    {
      pSelText=AkelPad.GetSelText(3/*\r\n*/);
      AkelPad.WriteFile(pSelFile, pSelText, -1, 65001, true);
    }
    if (nOffset > -1)
      nOffset=AkelPad.TextFind(0, "(?<=^\\|\\|\\|\\|).*?", 0xC0001 /*FRF_DOWN|FRF_REGEXPNONEWLINEDOT|FRF_REGEXP*/);
  }
  while (nOffset > -1)
}
if (bSave)
{
  AkelPad.SetSel(nInitSelStart, nInitSelEnd);
}

function IsFileExist(pFile)
{
  if (oSys.Call("kernel32::GetFileAttributes" + _TCHAR, pFile) == -1)
    return false;
  return true;
}


Инструкция:
1. Создаёте текстовый файл проекта, содержащего файлы, с которыми вы собираетесь работать, в формате:
Code:
||||c:\Folder\MyFile1.txt

||||c:\Folder\MyFile2.txt

2. Считываете содержимое файлов проекта:
Code:
Call("Scripts::Main", 1, "MergeProject.js", `-Save=false`)

3. Меняете содержимое.
4. Сохраняете изменения:
Code:
Call("Scripts::Main", 1, "MergeProject.js", `-Save=true`)


Для работы скрипта используйте текущую разрабатываемую версию AkelPad'а.
Back to top
View user's profile Send private message Send e-mail
rono



Joined: 27 Jun 2016
Posts: 6

PostPosted: Mon Jul 04, 2016 10:21 am    Post subject: Reply with quote

О, благодарю, Александр)
Только чувствую себя как Буратино) пока не понимаю, как его запустить в программе. Файл создал и поместил в (AkelPad-4.9.7-bin-rus\AkelFiles\Plugs\Scripts)

PS
рекомендованную "текущую версию" тоже скачал, но понятнее не стало)
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2209
Location: Vinnitsa, Ukraine

PostPosted: Mon Jul 04, 2016 11:44 am    Post subject: Reply with quote

rono
Плагинами ToolBar, ContextMenu или HotKeys отобразить пунктами меню/кнопками указанные Call-команды(для HotKeys привязать к горячей клавише)
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Kley



Joined: 28 Mar 2015
Posts: 202
Location: Russia

PostPosted: Mon Jul 04, 2016 2:30 pm    Post subject: Reply with quote

rono
Посмотрите картинку и пост выше.
Может Sessions Plugin все-таки то, что нужно?
Back to top
View user's profile Send private message
rono



Joined: 27 Jun 2016
Posts: 6

PostPosted: Mon Jul 04, 2016 8:13 pm    Post subject: Reply with quote

00

Last edited by rono on Mon Jul 04, 2016 8:31 pm; edited 2 times in total
Back to top
View user's profile Send private message
rono



Joined: 27 Jun 2016
Posts: 6

PostPosted: Mon Jul 04, 2016 8:30 pm    Post subject: Reply with quote

Kley
благодарю, пытаюсь разобраться.
насколько я понимаю, Sessions plugin создает только файл, который объединяет другие файлы, но не создает папку, а сами файлы остаются лежать там, откуда их открыли. То есть, структура создается только внутри самой оболочки. В общем и целом, это не проблема. И плагин, действительно, почти то, что нужно.
А про запуск скрипта вообще не понял. Открывал ToolBar, ContextMenu и HotKeys, но не понимаю, что делать с окном, которое всплывает. А при запуске скрипта вообще ничего не происходит. Извините, вероятно туплю. Или может просто не имею опыта работы с подобными программами. И как тут, в форуме прикрепить принтскрин, тоже чего-то не понимаю... Не писал никогда на форумах.
Back to top
View user's profile Send private message
rono



Joined: 27 Jun 2016
Posts: 6

PostPosted: Mon Jul 04, 2016 9:30 pm    Post subject: Reply with quote

Instructor
я прошу прощения, вы не могли бы подробнее описать, как запустить скрипт. я не сталкивался с подобным, поэтому не понял, что нужно сделать.
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 6188

PostPosted: Tue Jul 05, 2016 7:08 am    Post subject: Reply with quote

rono
См. пункт 8 Как пользоваться скриптами?
Back to top
View user's profile Send private message Send e-mail
rono



Joined: 27 Jun 2016
Posts: 6

PostPosted: Thu Jul 07, 2016 1:21 am    Post subject: Reply with quote

Instructor
В той степени, в которой я понял, я все это уже это проделывал. При запуске скрипта не происходит вообще ничего.
Back to top
View user's profile Send private message
Kley



Joined: 28 Mar 2015
Posts: 202
Location: Russia

PostPosted: Thu Jul 07, 2016 9:08 am    Post subject: Reply with quote

rono
скрипт MergeProject.js кладете в ПапкаAkelPad\AkelFiles\Plugs\Scripts;
добавляем в меню две строки:
Code:
"Read files (MergeProject)" Call("Scripts::Main", 1, "MergeProject.js", `-Save=false`)
"Save files (MergeProject)" Call("Scripts::Main", 1, "MergeProject.js", `-Save=true`)

в любой ПАПКЕ создаем два файла Readme1.txt, Readme2.txt (с каким-нибудь текстом);
рядом с этими файлами создаем еще один: Project.txt. Открываем его в AkelPad;
печатаете текст:
Code:
||||путь\к вашей\ПАПКЕ\Readme1.txt

||||путь\к вашей\ПАПКЕ\Readme2.txt


можно сохранить, для дальнейшего использования;
жмем пункт меню: "Read files".
Между строк "||||..." появляется текст файлов Readme1.txt, Readme2.txt.
ЕГО можно править, и сохранить: пункт меню "Save files" (MergeProject).
Файл Project.txt можно закрыть не сохраняя.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Discussion (Russian) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group