On Dec 7, 2006, at 9:37 AM, thomas Aylott wrote:
We could use a custom nib inside of tm_dialog instead of the --menu I think we could even use Allan's borderless panel subclass. Then it would look a lot more like the normal code completion thing that every other cocoa app uses.
There have been a bunch of changes to tm_dialog lately,
(If by 'lately' you mean r6308. :)
anyone know how doable this is?
Should be doable -- though maybe not quite as nice as the standard UI, because there's (currently) no way to autoresize the window to conform to the text size. Create a nib with an NSPanel; set the Custom Subclass of the window to the borderless subclass already present in TM. Add an NSTextView (graphics/fonts disabled) for the completion text and an NSTableView for the suggested completions; for the NSTextField value binding, set the 'Continously updates value' check box. The main loop would look something like:
dialog.wait_for_input do | input | user_text = input['completionText'] suggestions = completions_for(user_text) # Subword completion if user_text.end_with?(TabKeyChar) then user_text = common_prefix_of_strings(suggestions) || user_text.sub(/ #{TabKeyChar}$/, '') end
dialog.parameters = {'completionText' => user_text; 'suggestedCompletions' => suggestions} end
Chris