Сейчас при поиске вниз по достижении границы видимой части окна, страница прокручивается так, чтобы следующее найденное оказалось в середине окна редактирования: "по три строки" было предыдущем решением фичи? В параметрах ничего такого не вижу, в истории, QSearch и Scroll - тоже. Или тупо подводит память?
Posted: Tue Mar 08, 2016 2:18 pm
by Instructor
Skif_off
См. функцию ScrollCaret в Edit.c. Тот же код на JScript присутствует в SearchReplace.js.
Posted: Tue Mar 29, 2016 12:31 pm
by Puppet2016
Подкажите, пожалуйста, если компьютер аварийно завершил работу, 2 файла было открыто но не сохранены. Данные после загрузки можно где то найти? Никаких плагинов и автосохранений не стояло. Только базовая версия и все.
Posted: Tue Mar 29, 2016 2:32 pm
by FeyFre
Puppet2016, в таких случаях не факт что ОС живая остается, не то что данные.
Если о(много-раз-о)очень повезет, то части можно найти в образе физической памяти которую ОС делает(если настроено), либо в файле подкачки(если ОС не перезапускали и не перетерли).
В общем не мечтайте
Posted: Tue Mar 29, 2016 2:40 pm
by Puppet2016
FeyFre, спасибо
Подкачка отключена как страшный сон.
Блин вот попадалово...
А подскажите, что за образ физ памяти? Может компьютер чтото пишет, брендованная винда стоит, производитель мог там понасторить всего.
Posted: Tue Mar 29, 2016 8:47 pm
by FeyFre
Puppet2016, когда винда падает синим экраном, пишет всё плохо, она всю память сохраняет в специальный файл, из которого потом разработчик может достать информацию о том что упало и почему. Это может быть полное содержимое памяти, а может быть минимальное нужное. Практически тот же отчет, что и всем известный "Отправить отчет Microsoft". "Брендованость" тут не поможет, вообще. После таких падений при первом логине система предлагает отправить такой отчет разработчикам, и там можно посмотреть что лежит. Как правило в системно каталоге(C:\Windows возможно поглубще.) В общем забудьте.
Posted: Tue Apr 12, 2016 12:19 pm
by yozhic
Очень прошу, объясните, пожалуйста, или посоветуйте что нужно почитать, чтобы понять для чего нужны методы, начинающиеся с Mem (MemAlloc, MemPtrStr и т.п.) и что они делают. Что это за память, кому её выделяют и зачем потом читают и освобождают? Что такое указатели и зачем они бывают в строковом представлении? Прошу прощения за столь пространный вопрос, но даже не знаю с какого краю к нему подойти и спросить не у кого.
Posted: Wed Apr 13, 2016 4:27 pm
by FeyFre
Если хотите почитать, то вас можно послать к любой книжке по С/С++/Ассемблеру где объяснят что такое память, менеджер памяти, и т.д., а потом читать по JavaScript.
1. Память - хранилище данных, измеряется байтами. Соответственно, адресуется память(область памяти) номером байта по порядку - целым числом.
"Что такое указатели"
Указатель - число которое является адресом в памяти. Почему мы имеем отдельный термин? Чисто для удобства программирования и предотвращения ошибок некорректного использования(например, нету физического смысла выполнения операции умножения двух адресов, зато для абстрактных чисел это не проблема, потому программа с подобными операциями будет отбракована ещё на этапе разработки).
2. Менеджер памяти - компонент(подпрограмма, алгоритм) который ведет учет памяти - отмечает какая занята, какая нет, сколько свободно, также может выполнять функции контроля доступа до памяти(разрешения с чтением, записью, сбросом в своп, и т.д.).
3. Почему этот вопрос задан тут? Потому что абстракция памяти в языке JavaScript и абстракция памяти ОС/процессора - две большие разницы.
Программист JS не оперирует памятью напрямую, нужную память под объекты(в т.ч строки, числа, массивы) выделяет интерпретатор. Также интерпретатор инициализирует её, и следит чтобы в момент когда объект больше никому не нужен, он был удален, а память была помеченной свободной. При этом никаким образом не гарантируется что это произойдет сразу как только объект перестанет быть нужным, это может произойти или не произойти позже. Такой принцип называется сборкой мусора (Garbage collection) - попользовался, выкинул, мусорщик соберет выкинутое и пустит в оборот повторно.
Далее: "абстракция памяти ОС/процессора" - почему речь зашла об этом? Ответ: потому что интерпретатор(его расширение в виде методов объекта AkelPad) предоставляет дополнительные методы(способы) взаимодействия с процедурами и компонентами среды. Эти компоненты пользуются именно моделью памяти предоставленной ОС/процессора. Т.е. для того чтобы вызвать некую процедуру нужно подготовить аргументы так чтобы они были доступны(в соответствии с абстракцией), и дать адреса эти аргументов; также результат работы процедуры нужно будет "прочитать" и поместить в переменную JS в соответствующем виде. Вот для этого и существуют методы AkelPad.Mem*: выделить память, записать/прочитать, освободить.
"зачем они бывают в строковом представлении"
Вопрос со звездочкой(ц). Язык JavaScript не содержит абстракции типа указатель, он ему просто не нужен. Поэтому храним указатели(адреса памяти) в переменных числового типа. Всё хорошо, но тут вылезает один из известнейших недостатков JavaScript - ЧИСЛОВОЙ ТИП. Все, абсолютно все числа, в скриптах хранятся в одно виде - число с плавающей запятой. А какая у нас особенность этого представления? Правильно, не смотря на заявленный большой диапазон значений, точность самого сохраняемого значения конечна. Простой пример: число 0.1 вы не сможете сохранить в таком представлении, ближайшее число будет 0.10000000000000000000005(куча-цыфр-далее). Это касается не только дробных чисел, но и целых: большие целые числа точно записать не возможно. И это СТАНДАРТ, которому лет уже под 25, и меняться это не будет. Так, в 32 битной адресации памяти, целые 32 битные числа ещё можно сохранить точно. 64битные - нельзя, и как следствие при потере точности, обращения в память будут выполнятся "мимо". Кому оно надо? Никому. Как это побороть? Ответ в вопросе: указатель - число-адрес представляем в виде строки - десятичной записи. Точно и диапазон такого представления - бесконечны. И только перед самим использованием как указателя оно преобразуется(вне интерпретатора) в подходящий для ОС вид.
Posted: Thu Jul 07, 2016 11:23 pm
by RT56
Здравствуйте. Подскажите пожалуйста как применить цветовую тему из Coder (<Solarized Dark> ) в качестве дефолтной? Использую этот редактор как блокнот и хочу чтобы эта тема была по умолчанию везде, в том числе и при запуске редактора.