LINUX.ORG.RU
ФорумTalks

[Пятница] Emacs OS, Qt

 


0

2

Есть же такая весчь, как smoke (это либа для создания биндингов к языкам). Причём, ЕМНИП, её уже отделили от кед. Так почему бы не написать морду для емакса на православном фрейморке? Тогда в емаксе, например, появится и нормальный веб-браузер на webkit'е.

Если пойти ещё дальше, то биндинги на smoke можно писать и под разные компоненты для KDE: Nepomuk, Plasma, и самое главное - KParts. То есть, можно вообще встроить почти любое приложение в буффер емакса и управлять/настраивать всё это с помощью Emacs Lisp'a.

Что это даст?

  • Во-первых - можно с помощью частей из KDevelop сделать из емакса полноценную IDE.
  • Во-вторых - DE. Доработать до ума / переписать StumpWM, и использовать его как WM по-умолчанию. Приложения уже написаны в рамках КДЕ, запускать и управлять ими можно посредством созданных биндингов.
  • Плазмоиды в буферах, профит же!
  • Была статья, как загружать емакс из загрузчика......
  • ...
  • PROFIT!!! Emacs OS!

Как-то так. Дискасс!


Ответ на: комментарий от staseg

Да, это оно. Мой конфиг для ауто-комплете:

(add-to-list 'load-path (concat myconfpath "/auto-complete"))

(require 'auto-complete)
(require 'auto-complete-config)
;(add-to-list 'ac-dict (concat myconfpath "auto-complete/dict"))
(require 'auto-complete-clang)

;; Generic setup.
(global-auto-complete-mode t)           ;enable global-mode
(setq ac-auto-start 2)                ;automatically start (disabled)
(setq ac-dwim t)                        ;Do what i mean
(setq ac-override-local-map nil)        ;don't override local map
(setq ac-quick-help-delay 1)
(setq ac-fuzzy-enable t)
(setq ac-auto-show-menu 0.5)
(setq ac-ignore-case t)
(setq ac-delay 0.5)
(setq ac-use-fuzzy t)
(setq ac-use-comphist t)
(setq ac-use-quick-help t)

(setq ac-modes
      '(emacs-lisp-mode lisp-interaction-mode lisp-mode scheme-mode
                        c-mode cc-mode c++-mode java-mode
                        perl-mode cperl-mode python-mode ruby-mode
                        ecmascript-mode javascript-mode php-mode css-mode
                        makefile-mode sh-mode fortran-mode f90-mode ada-mode
                        xml-mode sgml-mode
                        haskell-mode literate-haskell-mode
                        emms-tag-editor-mode
                        asm-mode
                        org-mode
                        python-mode lua-mode))

;; The sources for common all mode.
(custom-set-variables
 '(ac-sources
   '(
     ;ac-source-yasnippet   ;this source need file `auto-complete-yasnippet.el'
     ;ac-source-semantic    ;this source need file `auto-complete-semantic.el'
     ;ac-source-gtags
     ;ac-source-imenu
     ac-source-abbrev
     ;ac-source-words-in-buffer
     ac-source-files-in-current-dir
     ac-source-filename
     ac-source-semantic
     ac-source-semantic-raw
     ;ac-source-ropemacs
     ;ac-source-symbols
     ;ac-source-words-in-all-buffer
     ;ac-source-words-in-buffer
     ac-source-words-in-same-mode-buffers
     )))

;;; Lisp mode
(dolist (hook (list
               'emacs-lisp-mode-hook
               'lisp-interaction-mode))
  (add-hook hook '(lambda ()
                    (add-to-list 'ac-sources 'ac-source-symbols))))

(add-hook 'haskell-mode-hook '(lambda ()
                                (add-to-list 'ac-sources 'ac-source-haskell)))

(add-hook 'c-mode-common-hook '(lambda ()
                                 ;; (add-to-list 'ac-omni-completion-sources
                                 ;;              (cons "\\." '(ac-source-semantic)))
                                 ;; (add-to-list 'ac-omni-completion-sources
                                 ;;              (cons "->" '(ac-source-semantic)))

                                 (setq ac-sources (append '(ac-source-clang ac-source-yasnippet) ac-sources))
                                 ;(setq ac-sources '(ac-source-semantic))
                                 ))

(ac-flyspell-workaround)

Bad_ptr ★★★★★
()

Это тред-детектор.

Deleted
()

smoke (это либа для создания биндингов к языкам)

Лучше swig? Или это тулза другого плана?

buddhist ★★★★★
()

Qt не нужен, есть EFL — Emacs Foundation Libraries и Elementary — Emacs Light Enhanced Modern Effective New Toolkit Applicating Rainbow Y-combinators.

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

> Emacs - полноценная IDE.
повторюсь: покажи мне рафакторинг С++ в CEDET. Емакс - неплохой комбайн для почти всего, но как полноценная ИДЕ для любого языка - нет

memnek
() автор топика
Ответ на: комментарий от memnek

повторюсь: покажи мне рафакторинг С++ в CEDET. Емакс - неплохой комбайн для почти всего, но как полноценная ИДЕ для любого языка - нет

А ты думал, что для убогоязыка будут делать все условия для радости?

Deleted
()
Ответ на: комментарий от memnek

покажи мне рафакторинг С++ в ...

А где это есть корректно работающий рефакторинг для С++? Никто не умеет даже rename корректно выполнять. Чего уж там об остальных рефакторингах говорить.

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

А где это есть корректно работающий рефакторинг для С++? Никто не умеет даже rename корректно выполнять. Чего уж там об остальных рефакторингах говорить.

Как минимум kdevelop нормально умеет твой rename и еще некоторые другие вещи.

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

Лучше бы вместо того, чтобы создавать очередной велосипед-IDE на C++, люди занимались допиливанием емакса.

Лучше бы вместо того, чтобы 1001-й год допиливать очередной текстовый редактор, люди просто пользовались нормальными IDE.

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

4.2 и не краснеешь. тот же qtcreator всё прекрасно умеет

Это уже с новой интеграцией clang front-end он умеет? Если без (то что сейчас предлагают скачивать как stable 2.4) то там вообще парсер путается в 10 строках C++ кода, т.к. инстанцировать шаблоны нормально не умеет. Ни о какой корректности rename в таких условиях и речи быть не может.

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

Как минимум kdevelop нормально умеет твой rename

Давно не смотрел его, надо будет еще разок попробовать. А пока пара вопросов:

- kdevelop умеет делать корректный rename для вызова функции внутри шаблона? Т.е. находить все инстанцирования в проекте, чтобы корректно изменить имена (совпавшие по утиной шаблонной типизации) и не нарушить программу.

- что kdevelop предлагает, когда rename затрагивает имя внутри сишного макроса? Предлагает его менять и проверяет, что этот макрос продолжает корректно работать во всех случаях использования?

P.S. Сделать корректный рефакторинг rename для исходников с кодогенерацией через шаблоны и препроцессор - очень сложная задача. Насколько я знаю, никакая IDE сейчас этого не умеет, т.е. что-то правдоподобное сделать может, но компилируемость и неизменность поведения никто не гарантирует.

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

Почему? Скрестить православный лисп и православный Qt. Будет суперЪ

Еврейку с муслимом?!

И да, закопайте уже этот имакс - ну не нужен он в Реальном мире.

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

Пытался. Даже настроил и вот убей меня - смотрел и думал нах я потратил столько времени? Чтобы пиндосу задроченому поднять его ЧСВ?

Максимум - Lisp on box. На потыкать и закопать.

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

- kdevelop умеет делать корректный rename для вызова функции внутри шаблона? Т.е. находить все инстанцирования в проекте, чтобы корректно изменить имена (совпавшие по утиной шаблонной типизации) и не нарушить программу.

Обязан. Я на работе под виндой, поглядеть негде. Потыкай сам.

- что kdevelop предлагает, когда rename затрагивает имя внутри сишного макроса? Предлагает его менять и проверяет, что этот макрос продолжает корректно работать во всех случаях использования?

Хз.

P.S. Сделать корректный рефакторинг rename для исходников с кодогенерацией через шаблоны и препроцессор - очень сложная задача. Насколько я знаю, никакая IDE сейчас этого не умеет, т.е. что-то правдоподобное сделать может, но компилируемость и неизменность поведения никто не гарантирует.

Кодогенерация через препроцессор - признак недалекой личности, я бы сказал.

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

C++ второй после PL/1 по перегруженности всякой херней язык программирования.

Про COBOL забыл?

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