Комментарии 14
Не понял пару вещей.
У вас данные по спану хранятся отдельно(может для этого у вас и используется спан список) и если скролить то они берутся из этого хранилища или каждый раз вычисляются, если даже ничего не введено(тогда какие функции у спан списка)?
Если проскролить на одну строчку, то спан будет вычисляться только для новой строки или для всего что на экране?
У вас данные по спану хранятся отдельно(может для этого у вас и используется спан список) и если скролить то они берутся из этого хранилища или каждый раз вычисляются, если даже ничего не введено(тогда какие функции у спан списка)?
Если проскролить на одну строчку, то спан будет вычисляться только для новой строки или для всего что на экране?
У меня каждый раз вычисляются, так как я опасаюсь, что в каком-нибудь 3000+ строк кода файле будет их так много, что выскочит OOM. Но честно говоря я не пробовал, и в принципе попробовать стоит.
Но спаны, которые уже размещены и которые в области видимости я не перевставляю в EditText.
Но спаны, которые уже размещены и которые в области видимости я не перевставляю в EditText.
вы бы не могли оформить свое решение в форме опен сорс библиотеки? мне было бы интересно попробовать
сам использовал для посветки кода CodeMirror вместе с WebView
сам использовал для посветки кода CodeMirror вместе с WebView
У этой бы опен сорс библиотеки нашлось бы 3 пользователя за 3 года )). Мало кто будет писать IDE для андроид.
По поводу CodeMirror. И как? Должно же просто дико тормозить, в javascript же вообще нет потоков и выполняется ( на сколько я знаю) на 1ом ядре все.
По поводу CodeMirror. И как? Должно же просто дико тормозить, в javascript же вообще нет потоков и выполняется ( на сколько я знаю) на 1ом ядре все.
отличный вам пример использования GitHub Android клиент. Там CodeMirror как раз используется для подсветки кода. Правда немного устаревшей версии, попробую позже обновить.
То есть, здесь не только об IDE на андроид речь идет, всякие GitHub, Gitlab клиенты и другие приложения, отображающие код — потенциальные пользователи :)
Ничего вам не могу сказать о потоках в javascript, не осведомлен. простое отображение кода без редактирования работает довольно шустро.
Плюс с приходом полноценного Chromium движка для Android WebView уверен подобные вещи значительно ускорятся.
То есть, здесь не только об IDE на андроид речь идет, всякие GitHub, Gitlab клиенты и другие приложения, отображающие код — потенциальные пользователи :)
Ничего вам не могу сказать о потоках в javascript, не осведомлен. простое отображение кода без редактирования работает довольно шустро.
Плюс с приходом полноценного Chromium движка для Android WebView уверен подобные вещи значительно ускорятся.
согласен. сам вот все хочу как то попробовать это реализовать.
В любом случае, думаю ваш опыт был бы полезен сообществу :)
В любом случае, думаю ваш опыт был бы полезен сообществу :)
Зачем для подсветки AST, если в большинстве случаев справится и конечный автомат с магазинной памятью?
AST нужно не только для подсветки
Я понимаю, что у AST есть и другие задачи, но для подсветки-то зачем его использовать?
Допустим, мы показываем исходный текст на Java. В тексте есть строки с escape-последовательностями, которые хорошо бы выделять цветом/стилем. Чем вам тут поможет AST? Будете хранить один строковый литерал в виде целого поддерева или всё же обработаете все escape-последовательности ещё в лексере?
Допустим, мы показываем исходный текст на Java. В тексте есть строки с escape-последовательностями, которые хорошо бы выделять цветом/стилем. Чем вам тут поможет AST? Будете хранить один строковый литерал в виде целого поддерева или всё же обработаете все escape-последовательности ещё в лексере?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Подсветка кода на android. Мой опыт