Снегопат https://snegopat.ru/forum/ |
|
Как выводить текст что бы работал переход? https://snegopat.ru/forum/viewtopic.php?f=5&t=552 |
Страница 1 из 1 |
Автор: | quest [ 04 окт 2013, 00:47 ] |
Заголовок сообщения: | Как выводить текст что бы работал переход? |
При проверке модуля вызываемого по Ctrl-F7 если есть ошибки то 2 клик по строке с ошибкой приводит к переходу на нажную строку. Что нужно написать в скрипте что бы мой вывод в это окно работал также? пока использую тупо message |
Автор: | artbear [ 04 окт 2013, 08:45 ] |
Заголовок сообщения: | Re: Как выводить текст что бы работал переход? |
Да, объектная модель позволяет. Посмотри описание объектной модели. |
Автор: | quest [ 04 окт 2013, 21:09 ] |
Заголовок сообщения: | Re: Как выводить текст что бы работал переход? |
а ссылку, для облегчения поиска? понимаю что нагло, но мое гугл-фу - очень плохо.... |
Автор: | quest [ 04 окт 2013, 21:42 ] |
Заголовок сообщения: | Re: Как выводить текст что бы работал переход? |
Вот только это нашел. Есть что-то еще или придется самому дописыфвать обрабочик? Метод Message Выводит сообщение в окно сообшений. Синтаксис: Message(Текст, [Пиктограмма], [Обработчик], [Параметр для обработчика]) Параметры: Текст. Обязательный. Строка. Текст выводимого сообщения. Пустой текст движком 1С не выводится. [Пиктограмма]. Не обязательный. Число или объект Картинка. Указывает пиктограмму для выводимого сообщения. Если передано число, выводится одна из стандартных пиктограмм: mNone = 0, без пиктограммы mTriangle = 1, Треугольник mExc1 = 2, ! mExc2 = 3, !! mExc3 = 4, !!! mInfo = 5, Информация Также может быть передана картинка, кроме картинок из стандартной библиотеки. По умолчанию выводится без пиктограммы. [Обработчик]. Необязательный. Функция, которая будет вызвана при клике или нажатии Enter на выведенном сообщении. [Параметр для обработчика]. Необязательный. Любого типа. Будет передан аргументом в функцию-обработчик нажатия при ее вызове. |
Автор: | quest [ 04 окт 2013, 22:21 ] |
Заголовок сообщения: | Re: Как выводить текст что бы работал переход? |
Разорбрался. Но вопрос такой - курсор не мигает. все остально работает, а вот курсор не видно. вот и приходиться мышкой тыкать в окно. И попутно вопрос - есть шаблон вообще для таких мелентких скриптов? типа того что бы только нужную часть писать а вся обвязка была бы более-менее стандартной? И еще вопрос - код закритикуйте - где неправильно сделал? как придать коду совершенства? код $engine JScript $uname warn_45lines $dname warn_45lines $addin global $addin stdlib $addin stdcommands stdlib.require('TextWindow.js', SelfScript); stdlib.require('SyntaxAnalysis.js', SelfScript); global.connectGlobals(SelfScript); function onSyntaxCheck(cmd) { var mdObj, av = windows.getActiveView() if(!av || !(mdObj = av.mdObj)) return macrosanalizeModule(); } function macrosanalizeModule(){ var tw = GetTextWindow(); if (!tw) return; var parser = snegopat.parseSources(tw.text()); for(var i = 0, c = parser.lexemCount; i < c; i++) { var lex = parser.lexem(i) if(lex.type==40 ) i+= analizeFunction(parser,i,lex); } } function onClick_45Lines(param) { if (!param['wnd']) return if (!param['wnd'].IsActive()) return param['wnd'].setCaretPos(param['line']+1,1); var view = param['wnd'].GetView(); if (!view){} else view.activate(); } function analizeFunction(parser,start,startlex){ line = 0; name = parser.lexem(start+1).text; lastline = startlex.line; var i,c, wnd = GetTextWindow(); for(i = start, c = parser.lexemCount; i< c; i++){ var lex = parser.lexem(i); var maxLines = 45; if(lex.type==42){ if(line > maxLines) { var param = {}; param['wnd'] = wnd; param['line'] = startlex.line; message("Функция "+name+" большая. Лишних "+(line - maxLines)+" строк ",mExc1, onClick_45Lines, param); } break; } if (lex.type == 1) // коменты не считаются кодом. continue; line+= (lastline==lex.line) ? 0:1; // смениться после прочтения перевода строки. а это может только при честном переводе или если прочли многострочную строку lastline =lex.line; } return (i - start); } // Добавим обработчик команды сохранения файла stdcommands.Frntend.SyntaxCheck.addHandler(SelfScript.self, "onSyntaxCheck"); |
Автор: | orefkov [ 07 окт 2013, 13:28 ] |
Заголовок сообщения: | Re: Как выводить текст что бы работал переход? |
Конструкции param['wnd'] лучше замени на param.wnd А так, как я понял, пишет о слишком длинных функциях? |
Автор: | quest [ 07 окт 2013, 13:33 ] |
Заголовок сообщения: | Re: Как выводить текст что бы работал переход? |
ну да. Кандидаты для анализа и под нож рефакторинга. Пользуясь случаем - автору этого скрипта - респект и уважуха. |
Автор: | sosnae [ 07 окт 2013, 13:52 ] |
Заголовок сообщения: | Re: Как выводить текст что бы работал переход? |
Давай тогда добавлю с настройкой в расширенную проверку. Типа в настройках выбираешь тип проверки: синтаксис проверка орфографическая проверка длинна в функции/процедуры и параметром задаем количество строк для проверки. |
Автор: | quest [ 07 окт 2013, 14:27 ] |
Заголовок сообщения: | Re: Как выводить текст что бы работал переход? |
Да, я только за. и про двиения функций по списку не забудь |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |