BeanShell

Zoltán Kócsi <[email protected]>
Newsgroups gmane.editors.jedit.user
Organization Bendor Research Pty. Ltd.
Message-ID <[email protected]>
Can I save a temporary buffer?

I'd like to keep a sort of a resource file (actually more than one) in
the background, used by some BeanShell macros. When the user fires up
the macro, I'd like to load the file into a temporary buffer, manipulate
it and then save it back to disc, without modifying the rest of jEdit's
state or opening new views or anything else.

To make it clearer, here's a hypotethical example:

We need a BeanShell macro which is bound to a key. It has to append a
one-line timestamp to a (text) file every time the key is pressed. No
need to worry about multi-threading, race conditions, file locking or
any other stuff; absolute basic single-everything situation. Also,
initially we can ignore error handling.

So, I thought this skeleton would be an acceptable solution:

buffer = open_a_temporary_buffer_and_load( "my_path/my_file" );
buffer.insert( end_of_the_text, get_time_as_text() + "\n" );
buffer.save();
buffer.close();

The first bit looked promising:

buffer = openTemporary( view, "my_path", "my_file", false );

is just what I want. But I encountered two problems:

- The call returns a buffer even if the file does not exist. Which I
  don't understand: the last argument being 'false' tells the method
  that I want the file to be loaded from the disc. According to the
  docs I supposed to get a null if the file cannot be loaded.

- I found a method to close a buffer, which will then ask the user
  whether changes should be saved. There's also a method which saves
  all buffers, no questions asked. But I couldn't find a method that
  saves a single buffer or a method which closes a buffer, silently
  saving it if its dirty.

So, I have two questions:

1. Is the above described behaviour of openTemporary() is a bug
(unlikely) or user error (probable). If the latter, what have I missed?

2. How can I save (or save-and-close) a single buffer, without user
interaction?

Thanks,

Zoltan

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
-- 
-----------------------------------------------
jEdit Users' List
[email protected]
https://lists.sourceforge.net/lists/listinfo/jedit-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.