Было бы неплохо, если бы можно было перемещать элемент массива (влево / вправо) при редактировании исходного кода. Например, если у вас есть этот массив (на любом языке)

var a = ['foo', 'bar', baz]; // JavaScript for instance

И если курсор находится рядом с baz (в начале, в конце или даже в середине), вы сможете перемещать этот элемент внутри массива (в данном случае это последний элемент, поэтому вы можете не перемещать его вправо), если вы запустите функцию move-array-item-left или unshift-array-item, она переместит baz влево:

var a = ['foo', baz, 'bar']; // JavaScript for instance

Кто-нибудь знает, как реализовать такую ​​функцию (или, может быть, кто-то уже сделал это)?

Было бы неплохо иметь это для веб-режима, но, возможно, есть общий второстепенный режим, который Является ли это.

2
jcubic 19 Мар 2014 в 14:53

2 ответа

Лучший ответ

Расположите точку в начале baz и нажмите C-M-t . Это запускает команду transpose-sexps, которая, кажется, делает то, что вы хотите.

4
legoscia 19 Мар 2014 в 15:12

Я реализовал нечто подобное для семейства языков Lisp. См. гифку.

Можно сделать что-то подобное и для семейства Algol.

0
abo-abo 19 Мар 2014 в 21:33
Дополнительный вопрос, как вы создали эти гифки? Был ли он создан в Linux, Win или OSX?
 – 
jcubic
19 Мар 2014 в 23:32
Linux, savemydesktop+mplayer+imagemagick+makefile, чтобы связать это вместе. И, наконец, GIMP для обрезки и установки задержки между кадрами.
 – 
abo-abo
20 Мар 2014 в 02:13