LINUX.ORG.RU

Как научить vim неизвестному языку?

 


0

2

пишу на одном вендузятном скриптовом языке, а именно mIRC, в котором есть встроенный редактор скриптов (очень криво работает), сам mIRC пускаю в Wine, а вот переползти хочу на vim. не могу научить его правильным отступам.

знаете, mIRC весьма популярен особенно зарубежом, и уже существует второй десяток лет, а для vim никто подсветку все еще не запилил. :( сделал бы сам, но не осиливаю.

вобщем суть, когда в vim делаю 100500== (для выравнивания текста), он делает вот так:

alias float32 {
  var %d = $calc($1 + $2 * 256 + $3 * 256^2 + $4 * 256^3)
    var %e = $calc($and(%d,$calc(2^31-2^23))/(2^23))
    var %m = $base(1. $+ $right($base(%d,10,2,23),23),2,10)
    return $calc(-1^$isbit(%d,32) * %m * 2^(%e - 127))
}

после первой правильно выравненой строки с двумя пробелами, зачем-то все последующие делает по 4 пробела.

как это вылечить? чтобы vim расставлял по 2 пробела на каждые { } скобки.

еще нашел такой http://www.msldev.com/ IDE, оно на Qt и проприетарно, а значит не нужно.

★★★★★

знаете, mIRC весьма популярен особенно зарубежом

да ладно, на гитхабе даже не дали ему свой цвет типа файлов/синтаксиса, хотя для какого только треша никому неизвестного там они есть, типа кристалла и прочих.

сделал бы сам, но не осиливаю.

Это же очень просто, итить его в кочерыжку, предлагаю тебе не чесать макаку, а запилить для него syntax file и стать героем в отрасли.

А где можно посмотреть его спецификацию, расцветку, отступы? Может там на 10 минут работы всего.

redhat
()

знаете, mIRC весьма популярен особенно зарубежом
виндузятном
для vim никто подсветку все еще не запилил

логично какбэ

snoopcat ★★★★★
()
Ответ на: комментарий от redhat

мм.. давайте. я правда уже начал делать =)

if version < 600
  syntax clear
elseif exists("b:current_syntax")
  finish
endif

syn match mrcComment ";.*$"
syn match mrcComment "REM .*$"

hi link mrcComment Comment

вот, и представляете, заработало! комментарии ; и REM подсчечиваются, а еще есть классические блоки /* */ как и везде.

вобщем расскажу немножко.

функция в языке это $func, переменные это %variable и &variable.

есть if elseif else while goto и метки :word

существуют события вида on *:event:*:*: { код } и функции alias function { код }

можете запилить парочку функций и команд для примера, а все остальное я сам дополню и будем первыми в мире, кто сделал подсветку для этого языка :]

для примера, сейчас пишу веб-сервер и вот как оно выглядит: https://github.com/spfng/mIRC/blob/master/scripts/httpd.mrc

Spoofing ★★★★★
() автор топика

Зачем эта срань под линуксами в wine, если есть нормальные нативные irc-клиенты?

AnDoR ★★★★★
()
Ответ на: комментарий от Spoofing

но структура цивилизованного плагина должна быть как по последней ссылке:

mirc-syntax.vim
|
├── ftdetect
│   └── mirc.vim
├── ftplugin
│   └── mirc.vim
├── syntax
│   └── mirc.vim
└── indent
    └── mirc.vim

redhat
()

а именно mIRC

сразу вспомнил твой первый скриншот, блэкбох в венде :)

q11q11 ★★★★★
()
Последнее исправление: q11q11 (всего исправлений: 1)
Ответ на: комментарий от expelled

изучение языка mIRC пришлось как раз в эпоху популярности IRC, это был такой удобный набор инструментов для решения любых задач, если нужно написать что-то GUI'шное — берется сам mIRC и его интерфейс модернизируется, если нужно соседу раздать интернет через прокси, когда у него не заплочено за сеть, берется mIRC и прокси-сокс5-сервер писался на нем.

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

глупо ратовать на опенсорцные скрипты на проприетарном языке, но тогда мне было всего 14 лет :-) и в мирке писались невероятные вещи. жаль IRC мёртв.

недавно я зарегистировался на github и надо что-то выкладывать. я писал много, за плечами огромный опыт, но показать нечего, потому что всё уже в далеком прошлом. я решил тупо написать с нуля все свои киллер-фичи на мирк.

Spoofing ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.