unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* Adding a hook to sql-mode?
@ 2008-12-09  0:58 Webb S.
  2008-12-09  2:14 ` Chetan
  0 siblings, 1 reply; 6+ messages in thread
From: Webb S. @ 2008-12-09  0:58 UTC (permalink / raw)
  To: help-gnu-emacs

Sorry for the slightly tweaked repost, but I am hoping to fix this
before I forget about it...

If I open schema.sql I get funky indentation, where emacs changes my
tabs to a mix of spaces etc.  I can fix this by running the following
in the eval (alt-:) buffer once I have opened a sql file (say
"schema.sql"):

(define-key sql-mode-map (kbd "TAB") 'self-insert-command)
(define-key sql-mode-map (kbd "RET") 'newline-and-indent)
(setq-default default-tab-width 4)

How can I run this as a hook so it always works for sql mode?  I tried
the following to no avail:

(add-hook 'sql-mode-hook
        (lambda()
          (define-key sql-mode-map (kbd "TAB") 'self-insert-command)))

By "to no avail" I mean that when I open foo.sql, <tab> does its
normal weird behavior of lining up with the end of the first word,
inserting spaces in order to do this (yuck!).  Once I run the above
define-key commands from "eval" (alt-:), it behaves how I want, but I
can't get the hook to be installed (I think).

Thx!


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Adding a hook to sql-mode?
  2008-12-09  0:58 Adding a hook to sql-mode? Webb S.
@ 2008-12-09  2:14 ` Chetan
  2008-12-09  5:40   ` Webb S.
  0 siblings, 1 reply; 6+ messages in thread
From: Chetan @ 2008-12-09  2:14 UTC (permalink / raw)
  To: help-gnu-emacs

"Webb S." <webb.sprague@gmail.com> writes:

> Sorry for the slightly tweaked repost, but I am hoping to fix this
> before I forget about it...
>
> If I open schema.sql I get funky indentation, where emacs changes my
> tabs to a mix of spaces etc.  I can fix this by running the following
> in the eval (alt-:) buffer once I have opened a sql file (say
> "schema.sql"):
>
> (define-key sql-mode-map (kbd "TAB") 'self-insert-command)
> (define-key sql-mode-map (kbd "RET") 'newline-and-indent)
> (setq-default default-tab-width 4)
>
> How can I run this as a hook so it always works for sql mode?  I tried
> the following to no avail:
>
> (add-hook 'sql-mode-hook
>         (lambda()
>           (define-key sql-mode-map (kbd "TAB") 'self-insert-command)))
>
> By "to no avail" I mean that when I open foo.sql, <tab> does its
> normal weird behavior of lining up with the end of the first word,
> inserting spaces in order to do this (yuck!).  Once I run the above
> define-key commands from "eval" (alt-:), it behaves how I want, but I
> can't get the hook to be installed (I think).
>
> Thx!

Looks like what you are looking for is indent with hard tabs with tab
width of 4. The following in the mode hook will do this.

	 (setq indent-tabs-mode t
	       tab-width 4)

You don't need to redefine TAB key then.



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Adding a hook to sql-mode?
  2008-12-09  2:14 ` Chetan
@ 2008-12-09  5:40   ` Webb S.
  2008-12-09  7:04     ` Chetan
                       ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Webb S. @ 2008-12-09  5:40 UTC (permalink / raw)
  To: help-gnu-emacs


> Looks like what you are looking for is indent with hard tabs with tab
> width of 4. The following in the mode hook will do this.
>
>          (setq indent-tabs-mode t
>                tab-width 4)
>
> You don't need to redefine TAB key then.

Could you show me how to write the add-hook for that?  I think that is
where my problem is, not in the command.  Yours is probably better,
but mine works if I eval it once the file is open.

Thx


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Adding a hook to sql-mode?
  2008-12-09  5:40   ` Webb S.
@ 2008-12-09  7:04     ` Chetan
  2008-12-09 17:51     ` Ian Eure
       [not found]     ` <mailman.2343.1228845087.26697.help-gnu-emacs@gnu.org>
  2 siblings, 0 replies; 6+ messages in thread
From: Chetan @ 2008-12-09  7:04 UTC (permalink / raw)
  To: help-gnu-emacs

"Webb S." <webb.sprague@gmail.com> writes:

>> Looks like what you are looking for is indent with hard tabs with tab
>> width of 4. The following in the mode hook will do this.
>>
>>          (setq indent-tabs-mode t
>>                tab-width 4)
>>
>> You don't need to redefine TAB key then.
>
> Could you show me how to write the add-hook for that?  I think that is
> where my problem is, not in the command.  Yours is probably better,
> but mine works if I eval it once the file is open.
>
> Thx

If you are having difficulty with add-hook, setup file local
variables. M-x info will be your friend there.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Adding a hook to sql-mode?
  2008-12-09  5:40   ` Webb S.
  2008-12-09  7:04     ` Chetan
@ 2008-12-09 17:51     ` Ian Eure
       [not found]     ` <mailman.2343.1228845087.26697.help-gnu-emacs@gnu.org>
  2 siblings, 0 replies; 6+ messages in thread
From: Ian Eure @ 2008-12-09 17:51 UTC (permalink / raw)
  To: Webb S.; +Cc: help-gnu-emacs

On Dec 8, 2008, at 9:40 PM, Webb S. wrote:

>
>> Looks like what you are looking for is indent with hard tabs with tab
>> width of 4. The following in the mode hook will do this.
>>
>>          (setq indent-tabs-mode t
>>                tab-width 4)
>>
>> You don't need to redefine TAB key then.
>
> Could you show me how to write the add-hook for that?  I think that is
> where my problem is, not in the command.  Yours is probably better,
> but mine works if I eval it once the file is open.
>

(add-hook 'sql-mode-hook '(lambda () (setq indent-tabs-mode t tab- 
width 4)))

  - Ian




^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Adding a hook to sql-mode?
       [not found]     ` <mailman.2343.1228845087.26697.help-gnu-emacs@gnu.org>
@ 2008-12-12  3:47       ` Webb S.
  0 siblings, 0 replies; 6+ messages in thread
From: Webb S. @ 2008-12-12  3:47 UTC (permalink / raw)
  To: help-gnu-emacs


>
> (add-hook 'sql-mode-hook '(lambda () (setq indent-tabs-mode t tab-
> width 4)))

As a final followup:  this works great to add the hook, but it didn't
get the simple tab inserting behavior I wanted (still lined up the
cursor with the end of the word above it) so I did the following:

(add-hook 'sql-mode-hook '(lambda () (define-key sql-mode-map (kbd
"TAB") 'self-insert-command)))

And it works now

Thanks to everyone!


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2008-12-12  3:47 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-12-09  0:58 Adding a hook to sql-mode? Webb S.
2008-12-09  2:14 ` Chetan
2008-12-09  5:40   ` Webb S.
2008-12-09  7:04     ` Chetan
2008-12-09 17:51     ` Ian Eure
     [not found]     ` <mailman.2343.1228845087.26697.help-gnu-emacs@gnu.org>
2008-12-12  3:47       ` Webb S.

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).