Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

ahk-org-mode for EMACS (was Allow Multiple CommentFlags)


  • Please log in to reply
12 replies to this topic

Poll: Allow Multiple CommentFlags (9 member(s) have cast votes)

Allow Multiple CommentFlags

  1. yes (5 votes [45.45%])

    Percentage of vote: 45.45%

  2. no (6 votes [54.55%])

    Percentage of vote: 54.55%

Vote Guests cannot vote
tinku99
  • Members
  • 560 posts
  • Last active: Feb 08 2015 12:54 AM
  • Joined: 03 Aug 2007
I wanted to use org-mode for emacs to do code folding in .ahk scripts
I thought being able to change the #Directives flag from # to something else would help, so the wish for multiple comment flags... probably wouldn't help.

Anyways, I solved the issue by combining ahk-mode with org-mode into ahk-org-mode. Git repository here: also includes related lisp-org-mode.

;; *** FEATURES***
;; - syntax highlighting
;; - indention, completion and command help (bound to "C-c TAB")
;; - lookup the docs on a command via w3m with F1
;; - search and browse ahk-forums in w3m with F2
;; - code folding using ';' as the headline delimiter instead of '*'
;; - integration with w3m for browsing the ahk-documentation and forums

derRaphael
  • Members
  • 872 posts
  • Last active: Mar 19 2013 04:42 PM
  • Joined: 23 Nov 2007

#CommentFlag

--------------------------------------------------------------------------------

Changes the script's comment symbol from semicolon to some other string.

#CommentFlag NewString

Parameters
NewString One or more characters that should be used as the new comment flag. Up to 15 characters may be specified.


greets
dR

or did u mean something else?

btw i doubt its a wise thing to use * as a commentchar by itself, since it would break following code

msgbox % "The result of the current multiplication of 5x5 is " 5
             * 5 " whereas 5x6 is " 5*6

remarks: #commentflag does not allow * being used as a commentchar (at least it doesnt work on my pc)

greets
dR

All scripts, unless otherwise noted, are hereby released under CC-BY

tinku99
  • Members
  • 560 posts
  • Last active: Feb 08 2015 12:54 AM
  • Joined: 03 Aug 2007
Hi DerRaphael,
Thanks for the response.
I did mean #CommentFlag

This works:
#CommentFlag `*
* this is a comment
msgbox % "The result of the current multiplication of 5x5 is " 5
* 5 " whereas 5x6 is " 5*6

This doesn't work:
#CommentFlag `*;
* this is a comment
; this is a comment also * this line gives an error

The #CommentFlag allows a single CommentFlagString. Note, its not #CommentFlags or #CommentFlagStrings, which is my wish.

derRaphael
  • Members
  • 872 posts
  • Last active: Mar 19 2013 04:42 PM
  • Joined: 23 Nov 2007
This works but gets rather confusing
#CommentFlag ; `*

MsgBox % "blah " 5
       * 5 " = 5x5 " 10
* comment	   
	   ; test 
	   
comment := 10

MsgBox % "blah " 5
       * 5 " = 5x5 " 10
* comment	   

1st msgbox displays blah 25 = 5x5 and the 2nd one displays blah 25 = 5x5 100

All scripts, unless otherwise noted, are hereby released under CC-BY

tinku99
  • Members
  • 560 posts
  • Last active: Feb 08 2015 12:54 AM
  • Joined: 03 Aug 2007
Yeah, the results do seem undefined / difficult to predict.

I guess to allow "*" as a CommentFlag, ahk would have to allow changing symbols of operators:

#MultiplyOperator  ~
CommentFlag *
result := 3 ~ 5             ;; result = 15

Changing the headline flag in org-mode to ";" is not perfect, but I'll explore:
(add-hook 'org-mode-hook '(lambda () (setq outline-regexp ";+")))

tinku99
  • Members
  • 560 posts
  • Last active: Feb 08 2015 12:54 AM
  • Joined: 03 Aug 2007
http://emacs.wordpre...y-code-folding/

Frankie
  • Members
  • 2930 posts
  • Last active: Feb 05 2015 02:49 PM
  • Joined: 02 Nov 2008

http://emacs.wordpre...y-code-folding/

What does this have to do with the topic at all??
aboutscriptappsscripts
Request Video Tutorials Here or View Current Tutorials on YouTube
Any code ⇈ above ⇈ requires AutoHotkey_L to run

ipstone
  • Guests
  • Last active:
  • Joined: --

http://emacs.wordpre...y-code-folding/

What does this have to do with the topic at all??


hello, this is not working. I downloaded the copy from git, but it still doesn't work.

the orginal ahk-mode script works fine for me. some ideas why this is the case?

tinku99
  • Members
  • 560 posts
  • Last active: Feb 08 2015 12:54 AM
  • Joined: 03 Aug 2007
download autocomplete mode first.
you can also try using the syntax directory included in the git repo if you still have problems.

Frankie
  • Members
  • 2930 posts
  • Last active: Feb 05 2015 02:49 PM
  • Joined: 02 Nov 2008
How do I install this? Where?
aboutscriptappsscripts
Request Video Tutorials Here or View Current Tutorials on YouTube
Any code ⇈ above ⇈ requires AutoHotkey_L to run

  • Guests
  • Last active:
  • Joined: --

How do I install this? Where?

<!-- m -->http://www.emacswiki...cs/AutoComplete<!-- m -->

Frankie
  • Members
  • 2930 posts
  • Last active: Feb 05 2015 02:49 PM
  • Joined: 02 Nov 2008
I read through the whole page. It didn't mention installation. Can you tell me the path to install to? I want syntax highlighting mainly. Auto-complete is cool, but I might remove it at a later time.
aboutscriptappsscripts
Request Video Tutorials Here or View Current Tutorials on YouTube
Any code ⇈ above ⇈ requires AutoHotkey_L to run

  • Guests
  • Last active:
  • Joined: --

I read through the whole page. It didn't mention installation. Can you tell me the path to install to? I want syntax highlighting mainly. Auto-complete is cool, but I might remove it at a later time.

There is nothing to install, you just add the folder to your load-path, and
(load-file ahk-org-mode.el)
and then load an ahk file in emacs, or turn on ahk-org-mode, by running
M-x ahk-org-mode

its in the readme:
;; Place this file somewhere in your load-path, byte-compile it and add the
;; following line to your ~/.xemacs/init.el resp. ~/.emacs:
;;
;; (setq ahk-syntax-directory "PATHTO/AutoHotkey/Extras/Editors/Syntax/")
;; (add-to-list 'auto-mode-alist '("\\.ahk$" . ahk-org-mode))
;; (autoload 'ahk-org-mode "ahk-org-mode")