- Subject: [slang-users] Re: is_defined
 
- From: Morten Bo Johansen <mbj@xxxxxxxxxxx>
 
- Date: Sun, 29 Nov 2020 13:20:10 +0100
 
John E. Davis <jed@xxxxxxxxxxx> wrote:
> The statement first gets compiled to byte-code, and is then executed.
> The error comes during the compilation stage.
[...]
Thank you very much for this detailed explanation. What I was
trying to achieve was some nanny'ish error handling in
connection with enabling word completion from within my aspell
spell checking mode[1] on a mode-by-mode basis, configurable in
the mode hook by setting a variable there, like e.g.
  define mailedit_mode_hook ()
  {
    .
    .
    Aspell_Ask_Dictionary = 1;
    Aspell_Use_Tabcompletion = 1;
    init_aspell ();
  } 
and in the function that prompts for a dictionary, e.g.
  define aspell_select_dictionary ()
  {
     .
     .
     if (Aspell_Use_Tabcompletion)
      init_tabcomplete (aspell_set_tabcompletion_wordlist ());     
  }
  
so whenever you're prompted for a spelling dictionary, the
"init_tabcomplete" word completion for the corresponding spell
checking language is automatically initialized. I then just
wanted to autoload the "init_tabcomplete" function for the
user, in case he forgot to autoload it in his .jedrc. or
display a meaningful error message in case the word completion
script wasn't even installed.
I have solved it by setting this globally in aspell.sl:
   #ifnexists init_tabcomplete
   if (strlen (expand_jedlib_file ("tabcomplete.sl")))
     autoload ("init_tabcomplete", "tabcomplete");
   #endif  
and then in the function that prompts for an aspell dictionary
   define aspell_select_dictionary ()
   {
      .
      .
      variable fun = __get_reference ("init_tabcomplete");
      if (fun != NULL)
      {
        if (Aspell_Use_Tabcompletion)
          (@fun (aspell_set_tabcompletion_wordlist));
      }
      .
      .
    }
    
This seems to take care of both forgetting to install the
tabcomplete script and forgetting to autoload the
"init_tabcomplete" function. The problem with the error thrown
is that it prevents loading the spell checking functions.
Thank you,
Morten
[1] http://mbjnet.dk/aspell/
_______________________________________________
For list information, visit <http://jedsoft.org/slang/mailinglists.html>.
  [2020 date index]
  [2020 thread index]
  
  [Thread Prev] [Thread Next]
      
  [Date Prev] [Date Next]