jEdit Community - Resources for users of the jEdit Text Editor
Need help with macro to toggle tab size
Submitted by ernest on Tuesday, 20 May, 2008 - 04:58
How would I create a macro to toggle the tab size between 4 and 8? I tried to start one by recording a macro while I changed the tab size using the buffer options dialog, but the resulting macro only showed this: new BufferOptions(view,buffer) - which just brings up the buffer options dialog. I'm not sure now how to proceed. I want to learn how to write good macros, and eventually plugins, so I'm hoping for advice rather than a complete solution. But any help at all will be appreciated.

Thanks,

Ernest
Comment viewing options
Select your preferred way to display the comments and click 'Save settings' to activate your changes.
Welcome to the wonderful world of jEdit macros. :)
by elberry on Tue, 20/05/2008 - 06:01
Take a look at the documentation regarding writing macros.
http://www.jedit.org/users-guide/writing-macros-part.html

You are going to need to know some java.

After you've read up a bit, take a look at the javadocs for jEdit - the ones on the site seem to be broken, so check your jEdit installation directory.

Find the jEditBuffer class, you can set buffer-local properties there.

Then read up a bit more here:
http://www.jedit.org/users-guide/buffer-local.html

Hope that helps.

Learn from the past. Live in the present. Plan for the future.
11101000
 
Thank you very much. I got t
by ernest on Tue, 20/05/2008 - 23:59
Thank you very much. I got this far:

tabSize = buffer.getTabSize();
Macros.message(view, "Tab size is: " + tabSize);

if (tabSize == 4) {
tabSize = 8;
} else {
tabSize = 4;
}

buffer.setProperty("tabSize", tabSize);
Macros.message(view, "Tab size is now: " + tabSize);

The problem though is that the view doesn't update. I can see the new tab size setting in the buffer's options dialog, and the view will update if I press OK there, but how do I get the view to update as part of my macro? I'm looking around through the class definitions but haven't found a way yet.

Thanks!

Ernest
 
workaround
by Robert Schwenn on Wed, 21/05/2008 - 20:26
There must be a better and more direct way, but the following lines do the job. They are the code of the macro Reset_TextArea.bsh:

view.splitVertically();
view.unsplitCurrent();

Robert
 
Thanks!
by ernest on Thu, 22/05/2008 - 00:05
Thanks!
User login
Browse archives
« April 2024  
MoTuWeThFrSaSu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
Poll
Are you interested in language packs for jEdit?
Yes, and I could help maintain translations
26%
Yes, I'd like to have translations
32%
Indifferent
35%
No, that'd be bad (please comment)
7%
Total votes: 1093
Syndication
file   ver   dls
German Localization light   4.4.2.1   82348
Context Free Art (*.cfdg)   0.31   46055
JBuilder scheme   .001   18495
BBEdit scheme   1.0   18116
ColdFusion scheme   1.0   18024
R Edit Mode - extensive version   0.1   17473
Advanced HTML edit mode   1.0   16206
Matlab Edit Mode   1.0   16068
jEdit XP icons   1.0   15229
XP icons for jEdit   1.1   14293