it-swarm.com.ru

Bash скрипт плагин для Eclipse?

Существуют ли приличные плагины bash для Eclipse? Мое единственное требование - подсветка синтаксиса. Я погуглил, но не увидел ничего похожего на плагин "the" bash

169
Stu Thompson

ShellEd выглядит многообещающе, выделяет синтаксис и имеет положительные отзывы, хотя я сам не пробовал. Это было одобрено для включения в дистрибутив Redhat. Немного больше информации на странице плагина ShellEd на сайте Eclipse и инструкции по установке на их вики.

Обратите внимание, что если вы не используете последнюю версию Eclipse (на момент написания этой статьи, Juno), вам нужно будет использовать более старую версию, например, 2.0.1 совместима с Indigo.

137
ire_and_curses

EDIT (03.08.2013): используйте http://sourceforge.net/projects/shelled/files/shelled/update/ для последней версии

EDIT (25.02.2013): Не нужно устанавливать инструмент linux для шеллбла 2.0.2 на Eclipse 4.2.1. Также не нужно скачивать Zip-файл. Вот сайт обновления шеллд 2.0.2: http://sourceforge.net/projects/shelled/files/shelled/ShellEd%202.0.2/update/

СТАРЫЙ ПОСТ:

Мне также нравится Shelled. Если вы устанавливаете его сейчас, вам нужно скачать Zip-файл и указать на него в мастере установки нового программного обеспечения в Eclipse. Вам также необходимо установить плагин man из 

http://download.Eclipse.org/technology/linuxtools/update
36
AlikElzin-kilaka

Отладчик для Bash версии 3 (Bourne опять Shell). 
Плагин для Eclipse. Будет работать только с редактором сценариев Shell ShellEd. basheclipse

13
avkosinsky

Просто следуйте официальным инструкциям из InstallGuide ShellEd

11
user819893

Бесплатный EclipseColorer Editor может делать подсветку синтаксиса для скриптов bash. 

Тем не менее, он не использует Eclipse «Outline view», то есть он не заполняет его списком определений функций. Иногда подсветка синтаксиса просто останавливается в середине скрипта. Тогда повторное открытие скрипта помогает.

7
knb

ShellEd

Решения ниже, как установить ShellEd, не работают для меня. Много ошибок на зависимостях. Нашел решение, которое работает для меня.

Система:

Linux Lubuntu 12.04

IDE:

Затмение Кеплера

В Eclipse перейдите в «Справка»> «Установить новое программное обеспечение».

Нажмите Добавить ...

Добавьте следующее местоположение, http://download.Eclipse.org/releases/kepler и назовите его «Eclipse Kepler».

Нажмите ОК.

Выберите только что созданный сайт Eclipse Kepler.

Разверните раздел Web, XML, Java EE и OSGi Enterprise Development внизу. Выберите серверные адаптеры WST.

Нажмите Далее и установите как обычно.

Перезапустите Eclipse

Затем добавьте репозиторий ShellEd, как указано выше: http://sourceforge.net/projects/shelled/files/shelled/update/

И установить его.

Перезапустите Eclipse.

Также работал в Eclipse Indigo, как сказано здесь: http://docs.wraithmonster.com/install-shelled

Наслаждаться :)

4
user3439968

Я воспроизведу хороший урок здесь, потому что я потерял эту статью и потратил некоторое время, чтобы найти ее снова!

Добавление подсветки синтаксиса для новых языков в Eclipse с библиотекой Colorer

Допустим, у вас есть файл HRC, содержащий синтаксис и лексическую структуру некоторых языков программирования, которые Eclipse не поддерживает (например, D/Iptables или любой другой язык сценариев).

Используя плагин EclipseColorer, вы можете легко добавить поддержку для него. 

Перейдите в Справка -> Установить новое программное обеспечение и нажмите Добавить .. В поле Имя напишите Colorer, а в поле Местоположение напишите http://colorer.sf.net/eclipsecolorer/

Выберите запись, которую вы только что добавили в поле со списком «Работа с:», дождитесь заполнения списка компонентов и нажмите «Выбрать все».

Нажмите Далее и следуйте инструкциям

Как только плагин установлен, закройте Eclipse.

Скопируйте файл HRC в [EclipseFolder]\plugins\net.sf.colorer_0.9.9\colorer\hrc\auto\types

[EclipseFolder] = /home/myusername/.Eclipse

Используйте ваш любимый текстовый редактор, чтобы открыть 

[EclipseFolder]\Plugins\net.sf.colorer_0.9.9\колорер\КПЧ\Авто\empty.hrc

Добавьте соответствующий элемент-прототип. Например, если ваш HRC-файл - d.hrc, empty.hrc будет выглядеть так: 

<?xml version="1.0" encoding='Windows-1251'?>
 <!DOCTYPE hrc PUBLIC
 "-//Cail Lomecb//DTD Colorer HRC take5//EN"
 "http://colorer.sf.net/2003/hrc.dtd"
 >
 <hrc version="take5" xmlns="http://colorer.sf.net/2003/hrc"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://colorer.sf.net/2003/hrc http://colorer.sf.net/2003/hrc.xsd"
 ><annotation><documentation>
 'auto' is a place for include
 to colorer your own HRCs
</documentation></annotation>
    <prototype name="d" group="main" description="D">
         <location link="types/d.hrc"/>
        <filename>/\.(d)$/i</filename>
 </prototype>
</hrc>

Сохраните изменения и закройте текстовый редактор

Откройте Eclipse и перейдите в «Окно» -> «Настройки» -> «Общие» -> «Редакторы» -> «Ассоциации файлов».

В разделе типов файлов нажмите кнопку Добавить .. и введите соответствующий тип файла (например, .d).

Нажмите «ОК» и выберите новую запись в списке.

В соответствующем разделе редакторов нажмите «Добавить», выберите «Colorer Editor» и нажмите «ОК».

хорошо, сложная часть заключается в том, что вы должны узнать о синтаксисе HCR. 

Вы можете посмотреть в 

[EclipseFolder] /net.sf.colorer_0.9.9/colorer/hrc/common.jar

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

Мой подарок - основная и неполная подсветка синтаксиса iptables. Если вы улучшаете, пожалуйста, поделитесь со мной.

<?xml version="1.0" encoding="Windows-1251"?>
<!DOCTYPE hrc PUBLIC "-//Cail Lomecb//DTD Colorer HRC take5//EN" "http://colorer.sf.net/2003/hrc.dtd">
<hrc version="take5" xmlns="http://colorer.sf.net/2003/hrc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://colorer.sf.net/2003/hrc http://colorer.sf.net/2003/hrc.xsd">
    <type name="iptables">
        <annotation>
            <develby> Mario Moura - moura.mario  gmail.com</develby>
            <documentation>Support iptables EQL language</documentation>
            <appinfo>
                  <prototype name="iptables" group="database" description="iptables">
                       <location link="iptables.hrc"/>
                       <filename>/\.epl$/i</filename>
                  </prototype>  
            </appinfo>
        </annotation>

        <region name="iptablesTable" parent="def:Keyword"/>
        <region name="iptablesChainFilter" parent="def:Symbol"/>
        <region name="iptablesChainNatMangle" parent="def:NumberDec"/>
        <region name="iptablesCustomDefaultChains" parent="def:Keyword"/>
        <region name="iptablesOptions" parent="def:String"/>
        <region name="iptablesParameters" parent="def:Operator"/>
        <region name="iptablesOtherOptions" parent="def:Comment"/>
        <region name="iptablesMatchExtensions" parent="def:ParameterStrong"/>
        <region name="iptablesTargetExtensions" parent="def:FunctionKeyword"/>
        <region name="pyComment" parent="def:Comment"/>
          <region name="pyOperator" parent="def:Operator"/>
          <region name="pyDelimiter" parent="def:Symbol"/>


        <scheme name="iptablesTable">
            <keywords ignorecase="no" region="iptablesTable">
                <Word name="mangle"/>
                <Word name="filter"/>
                <Word name="nat"/>
                <Word name="as"/>
                <Word name="at"/>
                <Word name="asc"/>
                <Word name="avedev"/>
                <Word name="avg"/>
                <Word name="between"/>
                <Word name="by"/>
            </keywords>
        </scheme>

        <scheme name="iptablesChainFilter">
            <keywords ignorecase="no" region="iptablesChainFilter">
                <Word name="FORWARD"/>
                <Word name="INPUT"/>
                <Word name="OUTPUT"/>
            </keywords>
        </scheme>

        <scheme name="iptablesChainNatMangle">
            <keywords ignorecase="no" region="iptablesChainNatMangle">
                <Word name="PREROUTING"/>
                <Word name="POSTROUTING"/>
                <Word name="OUTPUT"/>
            </keywords>
        </scheme>

        <scheme name="iptablesCustomDefaultChains">
            <keywords ignorecase="no" region="iptablesCustomDefaultChains">
                <Word name="CHTTP"/>
                <Word name="CHTTPS"/>
                <Word name="CSSH"/>
                <Word name="CDNS"/>
                <Word name="CFTP"/>
                <Word name="CGERAL"/>
                <Word name="CICMP"/>
            </keywords>
        </scheme>


        <scheme name="iptablesOptions">
            <keywords ignorecase="no" region="iptablesOptions">
                <Word name="-A"/>
                <Word name="--append"/>
                <Word name="-D"/>
                <Word name="--delete"/>
                <Word name="-I"/>
                <Word name="--insert"/>
                <Word name="-R"/>
                <Word name="--replace"/>
                <Word name="-L"/>
                <Word name="--list"/>
                <Word name="-F"/>
                <Word name="--flush"/>
                <Word name="-Z"/>
                <Word name="--zero"/>
                <Word name="-N"/>
                <Word name="--new-chain"/>
                <Word name="-X"/>
                <Word name="--delete-chain"/>
                <Word name="-P"/>
                <Word name="--policy"/>
                <Word name="-E"/>
                <Word name="--rename-chain"/>
            </keywords>
        </scheme>

        <scheme name="iptablesParameters">
            <keywords ignorecase="no" region="iptablesParameters">
                <Word name="-p"/>
                <Word name="--protocol"/>
                <Word name="-s"/>
                <Word name="--source"/>
                <Word name="-d"/>
                <Word name="--destination"/>
                <Word name="-j"/>
                <Word name="--jump"/>
                <Word name="-g"/>
                <Word name="--goto"/>
                <Word name="-i"/>
                <Word name="--in-interface"/>
                <Word name="-o"/>
                <Word name="--out-interface"/>
                <Word name="-f"/>
                <Word name="--fragment"/>
                <Word name="-c"/>
                <Word name="--set-counters"/>
            </keywords>
        </scheme>

        <scheme name="iptablesOtherOptions">
            <keywords ignorecase="no" region="iptablesOtherOptions">
                <Word name="-v"/>
                <Word name="--verbose"/>
                <Word name="-n"/>
                <Word name="--numeric"/>
                <Word name="-x"/>
                <Word name="--exact"/>

                <Word name="--line-numbers"/>
                <Word name="--modprobe"/>
            </keywords>
        </scheme>

        <scheme name="iptablesMatchExtensions">
            <keywords ignorecase="no" region="iptablesMatchExtensions">
                <Word name="account"/>
                <Word name="addrtype"/>
                <Word name="childlevel"/>
                <Word name="comment"/>
                <Word name="connbytes"/>
                <Word name="connlimit"/>
                <Word name="connmark"/>
                <Word name="connrate"/>
                <Word name="conntrack"/>
                <Word name="dccp"/>
                <Word name="dscp"/>
                <Word name="dstlimit"/>
                <Word name="ecn"/>
                <Word name="esp"/>
                <Word name="hashlimit"/>
                <Word name="helper"/>
                <Word name="icmp"/>
                <Word name="ipv4options"/>
                <Word name="length"/>
                <Word name="limit"/>
                <Word name="mac"/>
                <Word name="mark"/>
                <Word name="mport"/>
                <Word name="multiport"/>
                <Word name="nth"/>
                <Word name="osf"/>
                <Word name="owner"/>
                <Word name="physdev"/>
                <Word name="pkttype"/>
                <Word name="policy"/>
                <Word name="psd"/>
                <Word name="quota"/>
                <Word name="realm"/>
                <Word name="recent"/>
                <Word name="sctp"/>
                <Word name="set"/>
                <Word name="state"/>
                <Word name="string"/>
                <Word name="tcp"/>
                <Word name="tcpmss"/>
                <Word name="tos"/>
                <Word name="u32"/>
                <Word name="udp"/>                                                                              
            </keywords>
        </scheme>


    <scheme name="iptablesTargetExtensions">
            <keywords ignorecase="no" region="iptablesTargetExtensions">
                <Word name="BALANCE"/>
                <Word name="CLASSIFY"/>
                <Word name="CLUSTERIP"/>
                <Word name="CONNMARK"/>
                <Word name="DNAT"/>
                <Word name="DSCP"/>
                <Word name="ECN"/>
                <Word name="IPMARK"/>
                <Word name="IPV4OPTSSTRIP"/>
                <Word name="LOG"/>
                <Word name="MARK"/>
                <Word name="MASQUERADE"/>
                <Word name="MIRROR"/>
                <Word name="NETMAP"/>
                <Word name="NFQUEUE"/>
                <Word name="NOTRACK"/>
                <Word name="REDIRECT"/>
                <Word name="REJECT"/>
                <Word name="SAME"/>
                <Word name="SET"/>
                <Word name="SNAT"/>
                <Word name="TARPIT"/>
                <Word name="TCPMSS"/>
                <Word name="TOS"/>
                <Word name="TRACE"/>
                <Word name="TTL"/>
                <Word name="ULOG"/>
                <Word name="XOR"/>                                                                          
            </keywords>
        </scheme>



        <scheme name="iptables">
              <inherit scheme="iptablesTable"/>
              <inherit scheme="iptablesChainFilter"/>
              <inherit scheme="iptablesChainNatMangle"/>
              <inherit scheme="iptablesCustomDefaultChains"/>                                     
              <inherit scheme="iptablesOptions"/>
              <inherit scheme="iptablesParameters"/>
              <inherit scheme="iptablesOtherOptions"/>
              <inherit scheme="iptablesMatchExtensions"/>
              <inherit scheme="iptablesTargetExtensions"/>

   <!-- python operators : http://docs.python.org/ref/keywords.html -->
   <keywords region="pyOperator">
    <symb name="+"/>
    <symb name="-"/>
    <symb name="*"/>
    <symb name="**"/>
    <symb name="/"/>
    <symb name="//"/>
    <symb name="%"/>
    <symb name="&lt;&lt;"/>
    <symb name=">>"/>
    <symb name="&amp;"/>
    <symb name="|"/>
    <symb name="^"/>
    <symb name="~"/>
    <symb name="&lt;"/>
    <symb name=">"/>
    <symb name="&lt;="/>
    <symb name=">="/>
    <symb name="=="/>
    <symb name="!="/>
    <symb name="&lt;>"/>
   </keywords>


   <!-- basic python comment - consider it everything after # till the end of line -->
   <block start="/#/" end="/$/" region="pyComment" scheme="def:Comment"/>

   <block start="/(u|U)?(r|R)?(&quot;{3}|&apos;{3})/" end="/\y3/"
      region00="def:PairStart" region10="def:PairEnd"
      scheme="def:Comment" region="pyComment" />
      <!-- TODO: better scheme for multiline comments/docstrings -->
      <!-- scheme="StringCommon" region="pyString" /> -->


   <!-- python delimiters : http://docs.python.org/ref/delimiters.html -->
   <keywords region="pyDelimiter">
    <symb name="+"/>
    <symb name="("/>
    <symb name=")"/>
    <symb name="["/>
    <symb name="]"/>
    <symb name="{"/>
    <symb name="}"/>
    <symb name="@"/>
    <symb name=","/>
    <symb name=":"/>
    <symb name="."/>
    <symb name="`"/>
    <symb name="="/>
    <symb name=";"/>
    <symb name="+="/>
    <symb name="-="/>
    <symb name="*="/>
    <symb name="/="/>
    <symb name="//="/>
    <symb name="%="/>
    <symb name="&amp;="/>
    <symb name="|="/>
    <symb name="^="/>
    <symb name=">>="/>
    <symb name="&lt;&lt;="/>
    <symb name="**="/>
   </keywords>



        </scheme>
    </type>

После этого вы должны сохранить файл как iptables.hcr и добавить внутри jar:

[EclipseFolder] /net.sf.colorer_0.9.9/colorer/hrc/common.jar

Основано в: https://ohadsc.wordpress.com/2012/05/26/adding-syntax-highlighting-for-new-languages-to-Eclipse-with-the-colorer-library/

2
macm

ShellEd - хороший плагин для Eclipse.

Эта ссылка помогла мне установить его: http://mattnorris.me/blog/install-Eclipse-shelled-plugin/

Шаги:

  1. Загрузите ShellEd: http://sourceforge.net/projects/shelled/files/latest/download - файл представляет собой архив в формате ZIP с именем что-то вроде net.sourceforge.shelled-site-2.0.x.Zip.

  2. Затем нажмите Справка> Установить новое программное обеспечение ...

  3. Нажмите кнопку Добавить ... в правом верхнем углу.
  4. Нажмите Архив ...
  5. Перейдите к тому месту, где вы сохранили сжатый архив net.sourceforge.shelled-site-2.0.x.Zip и выберите его.
  6. Нажмите ОК. (Не беспокойтесь о необязательном поле Name. Eclipse назовет его автоматически.)
  7. Установите новый флажок Shell Script.
  8. Нажмите кнопку "Далее.
  9. Нажмите Далее еще раз.
  10. Выберите «Я принимаю условия лицензионного соглашения».
  11. Нажмите Готово.
  12. Перезапустите Eclipse.
1
Steven

В настоящее время существует специальный плагин для bash-скрипта, который называется «Bash editor» .... Он доступен на торговой площадке Eclipse:

Bash editor log

Вы можете найти его по адресу https://marketplace.Eclipse.org/content/bash-editor или по клиенту из торговой площадки при поиске «bash».

Плагин в настоящее время помечен как бета-версия, но стабильный. 

1
hexadez

Я попробовал ShellEd, но он не распознал ни один из моих сценариев Shell, даже когда я перезапустил Eclipse. Я добавил интерпретатор ksh и установил его по умолчанию, но он не изменился.

Наконец, я закрыл открытую вкладку с отображением файла ksh, а затем снова открыл ее. Это заставило его работать правильно. После некоторого использования я также могу порекомендовать его.

0
ivanlan

Это работает для меня в кислороде.

1) Перейдите в «Справка»> «Рынок Eclipse» и найдите «DLTK». Вы найдете что-то вроде "Shell Script (DLTK) 5.8.0". Установите его и перезагрузите Eclipse.

(Или перетащите кнопку «Установить» с этой веб-страницы в Eclipse: https://marketplace.Eclipse.org/content/Shell-script-dltk )

 Shell Script (DLTK)

2) Щелкните правой кнопкой мыши командный файл Shell в Project Explorer> Открыть с помощью> Другой ... и выберите Редактор сценариев оболочки. Вы также можете связать редактор со всеми файлами этого расширения.

 Shell script editor

0
Alexander Ishmuradov