Thread overview
VisualD's Intellisense not workign with gtk
Jul 07
FoxyBrown
Jul 12
FoxyBrown
July 07
Hi, I get no intellisense with visual d when using gtk.

I use a file that imports all of gtk, like so:


module gtk.All;

public import gtk.AboutDialog;
...
public import gtk.WindowGroup;

then I use

import gtk = gtk.All

but when using

gtk.
or gtk.WindowGroup.

or somegtkWidget.

no intellisense ever appears or it appears with only the basic object elements.


This makes it very hard to navigate through gtk as I am unfamiliar with most of the nomenclature.

Is there any way to get VisualD to properly show the intellisense for these objects and modules? Even if necessarily having to specify direct inclusion.

If I just do

gtk.gtk.gtk.gtk.gtk.gtk.gtk....

in an empty d file it goes on and on always listing the same intellisense. Changing things like gtk.gtkd.gtk.gtkd.... doesnt change the results.

The intellisense listed is ByRecord, Error, Exception, File, Interface, etc. I do not think they are part of gtk.

In any case, it clearly isn't working and there doesn't seem to be any way to correct it. It would be nice if we could precompile intellisense data from a set of modules(e.g., specify that it build an intellisense database from a directory recursively... probably would be faster too). Phobos, gtk, and other libraries generally do not change often enough that it should work well. One of the biggest issues I seem to have with Visual D is intellisense not really working correctly, if it works at all, but this isn't a hard problem, is it?




July 11

On 07.07.2017 19:23, FoxyBrown wrote:
> Hi, I get no intellisense with visual d when using gtk.
> 
> I use a file that imports all of gtk, like so:
> 
> 
> module gtk.All;
> 
> public import gtk.AboutDialog;
> ...
> public import gtk.WindowGroup;
> 
> then I use
> 
> import gtk = gtk.All
> 
> but when using
> 
> gtk.
> or gtk.WindowGroup.
> 
> or somegtkWidget.
> 
> no intellisense ever appears or it appears with only the basic object elements.
> 
> 
> This makes it very hard to navigate through gtk as I am unfamiliar with most of the nomenclature.
> 
> Is there any way to get VisualD to properly show the intellisense for these objects and modules? Even if necessarily having to specify direct inclusion.
> 
> If I just do
> 
> gtk.gtk.gtk.gtk.gtk.gtk.gtk....
> 
> in an empty d file it goes on and on always listing the same intellisense. Changing things like gtk.gtkd.gtk.gtkd.... doesnt change the results.
> 
> The intellisense listed is ByRecord, Error, Exception, File, Interface, etc. I do not think they are part of gtk.

AFAICT the completion has problems with public imports in imported modules: they don't add any symbols. This should be fixed in https://github.com/dlang/visuald/releases/tag/v0.45.0-rc1


> 
> In any case, it clearly isn't working and there doesn't seem to be any way to correct it. It would be nice if we could precompile intellisense data from a set of modules(e.g., specify that it build an intellisense database from a directory recursively... probably would be faster too). Phobos, gtk, and other libraries generally do not change often enough that it should work well.

If you let the compiler generate JSON data for your project (see language options), Visual D can add the contained symbols to the completion lists. You can also add precompiled JSON files (see global options). This doesn't use any scope information, though, so the list can grow enormously.

 One of the biggest issues I seem to have with
> Visual D is intellisense not really working correctly, if it works at all, but this isn't a hard problem, is it?

You bet it is ;-) It needs to rebuild the compiler front end, just being more friendly regarding error recovery and incremental changes. Visual D uses dparser from the Mono-D project, which still seems the most extensive solution.
July 12
On Tuesday, 11 July 2017 at 07:16:33 UTC, Rainer Schuetze wrote:
>
>
> On 07.07.2017 19:23, FoxyBrown wrote:
>> Hi, I get no intellisense with visual d when using gtk.
>> 
>> I use a file that imports all of gtk, like so:
>> 
>> 
>> module gtk.All;
>> 
>> public import gtk.AboutDialog;
>> ...
>> public import gtk.WindowGroup;
>> 
>> then I use
>> 
>> import gtk = gtk.All
>> 
>> but when using
>> 
>> gtk.
>> or gtk.WindowGroup.
>> 
>> or somegtkWidget.
>> 
>> no intellisense ever appears or it appears with only the basic object elements.
>> 
>> 
>> This makes it very hard to navigate through gtk as I am unfamiliar with most of the nomenclature.
>> 
>> Is there any way to get VisualD to properly show the intellisense for these objects and modules? Even if necessarily having to specify direct inclusion.
>> 
>> If I just do
>> 
>> gtk.gtk.gtk.gtk.gtk.gtk.gtk....
>> 
>> in an empty d file it goes on and on always listing the same intellisense. Changing things like gtk.gtkd.gtk.gtkd.... doesnt change the results.
>> 
>> The intellisense listed is ByRecord, Error, Exception, File, Interface, etc. I do not think they are part of gtk.
>
> AFAICT the completion has problems with public imports in imported modules: they don't add any symbols. This should be fixed in https://github.com/dlang/visuald/releases/tag/v0.45.0-rc1
>
>
>> 
>> In any case, it clearly isn't working and there doesn't seem to be any way to correct it. It would be nice if we could precompile intellisense data from a set of modules(e.g., specify that it build an intellisense database from a directory recursively... probably would be faster too). Phobos, gtk, and other libraries generally do not change often enough that it should work well.
>
> If you let the compiler generate JSON data for your project (see language options), Visual D can add the contained symbols to the completion lists. You can also add precompiled JSON files (see global options). This doesn't use any scope information, though, so the list can grow enormously.
>
>  One of the biggest issues I seem to have with
>> Visual D is intellisense not really working correctly, if it works at all, but this isn't a hard problem, is it?
>
> You bet it is ;-) It needs to rebuild the compiler front end, just being more friendly regarding error recovery and incremental changes. Visual D uses dparser from the Mono-D project, which still seems the most extensive solution.

No luck. gtk. does nothing intellisense wise. I have all the check boxes checked under language options/intellisense.

In the solution.json file, There is this, which only seems to be import modules and enums, no functions are added, maybe that is the problem? I do not have the gtk files in the solution(they are only imported during compilation), do I need to import them in to the solution for everything to work? (

[
 {
  "name" : "gtk.All",
  "kind" : "module",
  "file" : "..\\..\\..\\DLang\\GtkD\\generated\\gtkd\\gtk\\All.d",
  "members" : [
   {
    "name" : "gtk.AboutDialog",
    "kind" : "import",
    "line" : 3,
    "char" : 15
   },
   {
    "name" : "gtk.AccelGroup",
    "kind" : "import",
    "line" : 4,
    "char" : 15
   },
   {
    "name" : "gtk.AccelLabel",
    "kind" : "import",
    "line" : 5,
    "char" : 15
   },
   {
    "name" : "gtk.AccelMap",
    "kind" : "import",
    "line" : 6,
    "char" : 15
   },
   {
    "name" : "gtk.Accessible",
    "kind" : "import",
    "line" : 7,
    "char" : 15
   },
   {
    "name" : "gtk.Action",
    "kind" : "import",
    "line" : 8,
    "char" : 15
   },
   {
    "name" : "gtk.ActionableIF",
    "kind" : "import",
    "line" : 9,
    "char" : 15
   },
   {
    "name" : "gtk.ActionableT",
    "kind" : "import",
    "line" : 10,
    "char" : 15
   },
   {
    "name" : "gtk.ActionBar",
    "kind" : "import",
    "line" : 11,
    "char" : 15
   },
   {
    "name" : "gtk.ActionGroup",
    "kind" : "import",
    "line" : 12,
    "char" : 15
   },
   {
    "name" : "gtk.ActivatableIF",
    "kind" : "import",
    "line" : 13,
    "char" : 15
   },
   {
    "name" : "gtk.ActivatableT",
    "kind" : "import",
    "line" : 14,
    "char" : 15
   },
   {
    "name" : "gtk.Adjustment",
    "kind" : "import",
    "line" : 15,
    "char" : 15
   },
   {
    "name" : "gtk.Alignment",
    "kind" : "import",
    "line" : 16,
    "char" : 15
   },
   {
    "name" : "gtk.AppChooserButton",
    "kind" : "import",
    "line" : 17,
    "char" : 15
   },
   {
    "name" : "gtk.AppChooserDialog",
    "kind" : "import",
    "line" : 18,
    "char" : 15
   },
   {
    "name" : "gtk.AppChooserIF",
    "kind" : "import",
    "line" : 19,
    "char" : 15
   },
   {
    "name" : "gtk.AppChooserT",
    "kind" : "import",
    "line" : 20,
    "char" : 15
   },
   {
    "name" : "gtk.AppChooserWidget",
    "kind" : "import",
    "line" : 21,
    "char" : 15
   },
   {
    "name" : "gtk.Application",
    "kind" : "import",
    "line" : 22,
    "char" : 15
   },
   {
    "name" : "gtk.ApplicationWindow",
    "kind" : "import",
    "line" : 23,
    "char" : 15
   },
   {
    "name" : "gtk.Arrow",
    "kind" : "import",
    "line" : 24,
    "char" : 15
   },
   {
    "name" : "gtk.ArrowAccessible",
    "kind" : "import",
    "line" : 25,
    "char" : 15
   },
   {
    "name" : "gtk.AspectFrame",
    "kind" : "import",
    "line" : 26,
    "char" : 15
   },
   {
    "name" : "gtk.Assistant",
    "kind" : "import",
    "line" : 27,
    "char" : 15
   },
   {
    "name" : "gtk.Bin",
    "kind" : "import",
    "line" : 28,
    "char" : 15
   },
   {
    "name" : "gtk.BindingEntry",
    "kind" : "import",
    "line" : 29,
    "char" : 15
   },
   {
    "name" : "gtk.BindingSet",
    "kind" : "import",
    "line" : 30,
    "char" : 15
   },
   {
    "name" : "gtk.BooleanCellAccessible",
    "kind" : "import",
    "line" : 31,
    "char" : 15
   },
   {
    "name" : "gtk.Border",
    "kind" : "import",
    "line" : 32,
    "char" : 15
   },
   {
    "name" : "gtk.Box",
    "kind" : "import",
    "line" : 33,
    "char" : 15
   },
   {
    "name" : "gtk.BuildableIF",
    "kind" : "import",
    "line" : 34,
    "char" : 15
   },
   {
    "name" : "gtk.BuildableT",
    "kind" : "import",
    "line" : 35,
    "char" : 15
   },
   {
    "name" : "gtk.Builder",
    "kind" : "import",
    "line" : 36,
    "char" : 15
   },
   {
    "name" : "gtk.Button",
    "kind" : "import",
    "line" : 37,
    "char" : 15
   },
   {
    "name" : "gtk.ButtonAccessible",
    "kind" : "import",
    "line" : 38,
    "char" : 15
   },
   {
    "name" : "gtk.ButtonBox",
    "kind" : "import",
    "line" : 39,
    "char" : 15
   },
   {
    "name" : "gtk.Calendar",
    "kind" : "import",
    "line" : 40,
    "char" : 15
   },
   {
    "name" : "gtk.CellAccessible",
    "kind" : "import",
    "line" : 41,
    "char" : 15
   },
   {
    "name" : "gtk.CellAccessibleParentIF",
    "kind" : "import",
    "line" : 42,
    "char" : 15
   },
   {
    "name" : "gtk.CellAccessibleParentT",
    "kind" : "import",
    "line" : 43,
    "char" : 15
   },
   {
    "name" : "gtk.CellArea",
    "kind" : "import",
    "line" : 44,
    "char" : 15
   },
   {
    "name" : "gtk.CellAreaBox",
    "kind" : "import",
    "line" : 45,
    "char" : 15
   },
   {
    "name" : "gtk.CellAreaClass",
    "kind" : "import",
    "line" : 46,
    "char" : 15
   },
   {
    "name" : "gtk.CellAreaContext",
    "kind" : "import",
    "line" : 47,
    "char" : 15
   },
   {
    "name" : "gtk.CellEditable",
    "kind" : "import",
    "line" : 48,
    "char" : 15
   },
   {
    "name" : "gtk.CellEditableIF",
    "kind" : "import",
    "line" : 49,
    "char" : 15
   },
   {
    "name" : "gtk.CellEditableT",
    "kind" : "import",
    "line" : 50,
    "char" : 15
   },
   {
    "name" : "gtk.CellLayoutIF",
    "kind" : "import",
    "line" : 51,
    "char" : 15
   },
   {
    "name" : "gtk.CellLayoutT",
    "kind" : "import",
    "line" : 52,
    "char" : 15
   },
   {
    "name" : "gtk.CellRenderer",
    "kind" : "import",
    "line" : 53,
    "char" : 15
   },
   {
    "name" : "gtk.CellRendererAccel",
    "kind" : "import",
    "line" : 54,
    "char" : 15
   },
   {
    "name" : "gtk.CellRendererClass",
    "kind" : "import",
    "line" : 55,
    "char" : 15
   },
   {
    "name" : "gtk.CellRendererCombo",
    "kind" : "import",
    "line" : 56,
    "char" : 15
   },
   {
    "name" : "gtk.CellRendererPixbuf",
    "kind" : "import",
    "line" : 57,
    "char" : 15
   },
   {
    "name" : "gtk.CellRendererProgress",
    "kind" : "import",
    "line" : 58,
    "char" : 15
   },
   {
    "name" : "gtk.CellRendererSpin",
    "kind" : "import",
    "line" : 59,
    "char" : 15
   },
   {
    "name" : "gtk.CellRendererSpinner",
    "kind" : "import",
    "line" : 60,
    "char" : 15
   },
   {
    "name" : "gtk.CellRendererText",
    "kind" : "import",
    "line" : 61,
    "char" : 15
   },
   {
    "name" : "gtk.CellRendererToggle",
    "kind" : "import",
    "line" : 62,
    "char" : 15
   },
   {
    "name" : "gtk.CellView",
    "kind" : "import",
    "line" : 63,
    "char" : 15
   },
   {
    "name" : "gtk.CheckButton",
    "kind" : "import",
    "line" : 64,
    "char" : 15
   },
   {
    "name" : "gtk.CheckMenuItem",
    "kind" : "import",
    "line" : 65,
    "char" : 15
   },
   {
    "name" : "gtk.CheckMenuItemAccessible",
    "kind" : "import",
    "line" : 66,
    "char" : 15
   },
   {
    "name" : "gtk.Clipboard",
    "kind" : "import",
    "line" : 67,
    "char" : 15
   },
   {
    "name" : "gtk.ColorButton",
    "kind" : "import",
    "line" : 68,
    "char" : 15
   },
   {
    "name" : "gtk.ColorChooserDialog",
    "kind" : "import",
    "line" : 69,
    "char" : 15
   },
   {
    "name" : "gtk.ColorChooserIF",
    "kind" : "import",
    "line" : 70,
    "char" : 15
   },
   {
    "name" : "gtk.ColorChooserT",
    "kind" : "import",
    "line" : 71,
    "char" : 15
   },
   {
    "name" : "gtk.ColorChooserWidget",
    "kind" : "import",
    "line" : 72,
    "char" : 15
   },
   {
    "name" : "gtk.ColorSelection",
    "kind" : "import",
    "line" : 73,
    "char" : 15
   },
   {
    "name" : "gtk.ColorSelectionDialog",
    "kind" : "import",
    "line" : 74,
    "char" : 15
   },
   {
    "name" : "gtk.ComboBox",
    "kind" : "import",
    "line" : 75,
    "char" : 15
   },
   {
    "name" : "gtk.ComboBoxAccessible",
    "kind" : "import",
    "line" : 76,
    "char" : 15
   },
   {
    "name" : "gtk.ComboBoxText",
    "kind" : "import",
    "line" : 77,
    "char" : 15
   },
   {
    "name" : "gtk.Container",
    "kind" : "import",
    "line" : 78,
    "char" : 15
   },
   {
    "name" : "gtk.ContainerAccessible",
    "kind" : "import",
    "line" : 79,
    "char" : 15
   },
   {
    "name" : "gtk.ContainerCellAccessible",
    "kind" : "import",
    "line" : 80,
    "char" : 15
   },
   {
    "name" : "gtk.ContainerClass",
    "kind" : "import",
    "line" : 81,
    "char" : 15
   },
   {
    "name" : "gtk.CssProvider",
    "kind" : "import",
    "line" : 82,
    "char" : 15
   },
   {
    "name" : "gtk.CssSection",
    "kind" : "import",
    "line" : 83,
    "char" : 15
   },
   {
    "name" : "gtk.Dialog",
    "kind" : "import",
    "line" : 84,
    "char" : 15
   },
   {
    "name" : "gtk.DragAndDrop",
    "kind" : "import",
    "line" : 85,
    "char" : 15
   },
   {
    "name" : "gtk.DrawingArea",
    "kind" : "import",
    "line" : 86,
    "char" : 15
   },
   {
    "name" : "gtk.EditableIF",
    "kind" : "import",
    "line" : 87,
    "char" : 15
   },
   {
    "name" : "gtk.EditableT",
    "kind" : "import",
    "line" : 88,
    "char" : 15
   },
   {
    "name" : "gtk.Entry",
    "kind" : "import",
    "line" : 89,
    "char" : 15
   },
   {
    "name" : "gtk.EntryAccessible",
    "kind" : "import",
    "line" : 90,
    "char" : 15
   },
   {
    "name" : "gtk.EntryBuffer",
    "kind" : "import",
    "line" : 91,
    "char" : 15
   },
   {
    "name" : "gtk.EntryCompletion",
    "kind" : "import",
    "line" : 92,
    "char" : 15
   },
   {
    "name" : "gtk.EventBox",
    "kind" : "import",
    "line" : 93,
    "char" : 15
   },
   {
    "name" : "gtk.EventController",
    "kind" : "import",
    "line" : 94,
    "char" : 15
   },
   {
    "name" : "gtk.Expander",
    "kind" : "import",
    "line" : 95,
    "char" : 15
   },
   {
    "name" : "gtk.ExpanderAccessible",
    "kind" : "import",
    "line" : 96,
    "char" : 15
   },
   {
    "name" : "gtk.FileChooserButton",
    "kind" : "import",
    "line" : 97,
    "char" : 15
   },
   {
    "name" : "gtk.FileChooserDialog",
    "kind" : "import",
    "line" : 98,
    "char" : 15
   },
   {
    "name" : "gtk.FileChooserIF",
    "kind" : "import",
    "line" : 99,
    "char" : 15
   },
   {
    "name" : "gtk.FileChooserNative",
    "kind" : "import",
    "line" : 100,
    "char" : 15
   },
   {
    "name" : "gtk.FileChooserT",
    "kind" : "import",
    "line" : 101,
    "char" : 15
   },
   {
    "name" : "gtk.FileChooserWidget",
    "kind" : "import",
    "line" : 102,
    "char" : 15
   },
   {
    "name" : "gtk.FileFilter",
    "kind" : "import",
    "line" : 103,
    "char" : 15
   },
   {
    "name" : "gtk.Fixed",
    "kind" : "import",
    "line" : 104,
    "char" : 15
   },
   {
    "name" : "gtk.FlowBox",
    "kind" : "import",
    "line" : 105,
    "char" : 15
   },
   {
    "name" : "gtk.FlowBoxAccessible",
    "kind" : "import",
    "line" : 106,
    "char" : 15
   },
   {
    "name" : "gtk.FlowBoxChild",
    "kind" : "import",
    "line" : 107,
    "char" : 15
   },
   {
    "name" : "gtk.FlowBoxChildAccessible",
    "kind" : "import",
    "line" : 108,
    "char" : 15
   },
   {
    "name" : "gtk.FontButton",
    "kind" : "import",
    "line" : 109,
    "char" : 15
   },
   {
    "name" : "gtk.FontChooserDialog",
    "kind" : "import",
    "line" : 110,
    "char" : 15
   },
   {
    "name" : "gtk.FontChooserIF",
    "kind" : "import",
    "line" : 111,
    "char" : 15
   },
   {
    "name" : "gtk.FontChooserT",
    "kind" : "import",
    "line" : 112,
    "char" : 15
   },
   {
    "name" : "gtk.FontChooserWidget",
    "kind" : "import",
    "line" : 113,
    "char" : 15
   },
   {
    "name" : "gtk.FontSelection",
    "kind" : "import",
    "line" : 114,
    "char" : 15
   },
   {
    "name" : "gtk.FontSelectionDialog",
    "kind" : "import",
    "line" : 115,
    "char" : 15
   },
   {
    "name" : "gtk.Frame",
    "kind" : "import",
    "line" : 116,
    "char" : 15
   },
   {
    "name" : "gtk.FrameAccessible",
    "kind" : "import",
    "line" : 117,
    "char" : 15
   },
   {
    "name" : "gtk.Gesture",
    "kind" : "import",
    "line" : 118,
    "char" : 15
   },
   {
    "name" : "gtk.GestureDrag",
    "kind" : "import",
    "line" : 119,
    "char" : 15
   },
   {
    "name" : "gtk.GestureLongPress",
    "kind" : "import",
    "line" : 120,
    "char" : 15
   },
   {
    "name" : "gtk.GestureMultiPress",
    "kind" : "import",
    "line" : 121,
    "char" : 15
   },
   {
    "name" : "gtk.GesturePan",
    "kind" : "import",
    "line" : 122,
    "char" : 15
   },
   {
    "name" : "gtk.GestureRotate",
    "kind" : "import",
    "line" : 123,
    "char" : 15
   },
   {
    "name" : "gtk.GestureSingle",
    "kind" : "import",
    "line" : 124,
    "char" : 15
   },
   {
    "name" : "gtk.GestureSwipe",
    "kind" : "import",
    "line" : 125,
    "char" : 15
   },
   {
    "name" : "gtk.GestureZoom",
    "kind" : "import",
    "line" : 126,
    "char" : 15
   },
   {
    "name" : "gtk.GLArea",
    "kind" : "import",
    "line" : 127,
    "char" : 15
   },
   {
    "name" : "gtk.Gradient",
    "kind" : "import",
    "line" : 128,
    "char" : 15
   },
   {
    "name" : "gtk.Grid",
    "kind" : "import",
    "line" : 129,
    "char" : 15
   },
   {
    "name" : "gtk.HandleBox",
    "kind" : "import",
    "line" : 130,
    "char" : 15
   },
   {
    "name" : "gtk.HBox",
    "kind" : "import",
    "line" : 131,
    "char" : 15
   },
   {
    "name" : "gtk.HButtonBox",
    "kind" : "import",
    "line" : 132,
    "char" : 15
   },
   {
    "name" : "gtk.HeaderBar",
    "kind" : "import",
    "line" : 133,
    "char" : 15
   },
   {
    "name" : "gtk.HPaned",
    "kind" : "import",
    "line" : 134,
    "char" : 15
   },
   {
    "name" : "gtk.HScale",
    "kind" : "import",
    "line" : 135,
    "char" : 15
   },
   {
    "name" : "gtk.HScrollbar",
    "kind" : "import",
    "line" : 136,
    "char" : 15
   },
   {
    "name" : "gtk.HSeparator",
    "kind" : "import",
    "line" : 137,
    "char" : 15
   },
   {
    "name" : "gtk.HSV",
    "kind" : "import",
    "line" : 138,
    "char" : 15
   },
   {
    "name" : "gtk.IconFactory",
    "kind" : "import",
    "line" : 139,
    "char" : 15
   },
   {
    "name" : "gtk.IconInfo",
    "kind" : "import",
    "line" : 140,
    "char" : 15
   },
   {
    "name" : "gtk.IconSet",
    "kind" : "import",
    "line" : 141,
    "char" : 15
   },
   {
    "name" : "gtk.IconSize",
    "kind" : "import",
    "line" : 142,
    "char" : 15
   },
   {
    "name" : "gtk.IconSource",
    "kind" : "import",
    "line" : 143,
    "char" : 15
   },
   {
    "name" : "gtk.IconTheme",
    "kind" : "import",
    "line" : 144,
    "char" : 15
   },
   {
    "name" : "gtk.IconView",
    "kind" : "import",
    "line" : 145,
    "char" : 15
   },
   {
    "name" : "gtk.IconViewAccessible",
    "kind" : "import",
    "line" : 146,
    "char" : 15
   },
   {
    "name" : "gtk.Image",
    "kind" : "import",
    "line" : 147,
    "char" : 15
   },
   {
    "name" : "gtk.ImageAccessible",
    "kind" : "import",
    "line" : 148,
    "char" : 15
   },
   {
    "name" : "gtk.ImageCellAccessible",
    "kind" : "import",
    "line" : 149,
    "char" : 15
   },
   {
    "name" : "gtk.ImageMenuItem",
    "kind" : "import",
    "line" : 150,
    "char" : 15
   },
   {
    "name" : "gtk.IMContext",
    "kind" : "import",
    "line" : 151,
    "char" : 15
   },
   {
    "name" : "gtk.IMContextSimple",
    "kind" : "import",
    "line" : 152,
    "char" : 15
   },
   {
    "name" : "gtk.IMMulticontext",
    "kind" : "import",
    "line" : 153,
    "char" : 15
   },
   {
    "name" : "gtk.InfoBar",
    "kind" : "import",
    "line" : 154,
    "char" : 15
   },
   {
    "name" : "gtk.Invisible",
    "kind" : "import",
    "line" : 155,
    "char" : 15
   },
   {
    "name" : "gtk.Label",
    "kind" : "import",
    "line" : 156,
    "char" : 15
   },
   {
    "name" : "gtk.LabelAccessible",
    "kind" : "import",
    "line" : 157,
    "char" : 15
   },
   {
    "name" : "gtk.Layout",
    "kind" : "import",
    "line" : 158,
    "char" : 15
   },
   {
    "name" : "gtk.LevelBar",
    "kind" : "import",
    "line" : 159,
    "char" : 15
   },
   {
    "name" : "gtk.LevelBarAccessible",
    "kind" : "import",
    "line" : 160,
    "char" : 15
   },
   {
    "name" : "gtk.LinkButton",
    "kind" : "import",
    "line" : 161,
    "char" : 15
   },
   {
    "name" : "gtk.LinkButtonAccessible",
    "kind" : "import",
    "line" : 162,
    "char" : 15
   },
   {
    "name" : "gtk.ListBox",
    "kind" : "import",
    "line" : 163,
    "char" : 15
   },
   {
    "name" : "gtk.ListBoxAccessible",
    "kind" : "import",
    "line" : 164,
    "char" : 15
   },
   {
    "name" : "gtk.ListBoxRow",
    "kind" : "import",
    "line" : 165,
    "char" : 15
   },
   {
    "name" : "gtk.ListBoxRowAccessible",
    "kind" : "import",
    "line" : 166,
    "char" : 15
   },
   {
    "name" : "gtk.ListStore",
    "kind" : "import",
    "line" : 167,
    "char" : 15
   },
   {
    "name" : "gtk.LockButton",
    "kind" : "import",
    "line" : 168,
    "char" : 15
   },
   {
    "name" : "gtk.LockButtonAccessible",
    "kind" : "import",
    "line" : 169,
    "char" : 15
   },
   {
    "name" : "gtk.Main",
    "kind" : "import",
    "line" : 170,
    "char" : 15
   },
   {
    "name" : "gtk.MainWindow",
    "kind" : "import",
    "line" : 171,
    "char" : 15
   },
   {
    "name" : "gtk.Menu",
    "kind" : "import",
    "line" : 172,
    "char" : 15
   },
   {
    "name" : "gtk.MenuAccessible",
    "kind" : "import",
    "line" : 173,
    "char" : 15
   },
   {
    "name" : "gtk.MenuBar",
    "kind" : "import",
    "line" : 174,
    "char" : 15
   },
   {
    "name" : "gtk.MenuButton",
    "kind" : "import",
    "line" : 175,
    "char" : 15
   },
   {
    "name" : "gtk.MenuButtonAccessible",
    "kind" : "import",
    "line" : 176,
    "char" : 15
   },
   {
    "name" : "gtk.MenuItem",
    "kind" : "import",
    "line" : 177,
    "char" : 15
   },
   {
    "name" : "gtk.MenuItemAccessible",
    "kind" : "import",
    "line" : 178,
    "char" : 15
   },
   {
    "name" : "gtk.MenuShell",
    "kind" : "import",
    "line" : 179,
    "char" : 15
   },
   {
    "name" : "gtk.MenuShellAccessible",
    "kind" : "import",
    "line" : 180,
    "char" : 15
   },
   {
    "name" : "gtk.MenuToolButton",
    "kind" : "import",
    "line" : 181,
    "char" : 15
   },
   {
    "name" : "gtk.MessageDialog",
    "kind" : "import",
    "line" : 182,
    "char" : 15
   },
   {
    "name" : "gtk.Misc",
    "kind" : "import",
    "line" : 183,
    "char" : 15
   },
   {
    "name" : "gtk.ModelButton",
    "kind" : "import",
    "line" : 184,
    "char" : 15
   },
   {
    "name" : "gtk.MountOperation",
    "kind" : "import",
    "line" : 185,
    "char" : 15
   },
   {
    "name" : "gtk.NativeDialog",
    "kind" : "import",
    "line" : 186,
    "char" : 15
   },
   {
    "name" : "gtk.Notebook",
    "kind" : "import",
    "line" : 187,
    "char" : 15
   },
   {
    "name" : "gtk.NotebookAccessible",
    "kind" : "import",
    "line" : 188,
    "char" : 15
   },
   {
    "name" : "gtk.NotebookPageAccessible",
    "kind" : "import",
    "line" : 189,
    "char" : 15
   },
   {
    "name" : "gtk.NumerableIcon",
    "kind" : "import",
    "line" : 190,
    "char" : 15
   },
   {
    "name" : "gtk.OffscreenWindow",
    "kind" : "import",
    "line" : 191,
    "char" : 15
   },
   {
    "name" : "gtk.OrientableIF",
    "kind" : "import",
    "line" : 192,
    "char" : 15
   },
   {
    "name" : "gtk.OrientableT",
    "kind" : "import",
    "line" : 193,
    "char" : 15
   },
   {
    "name" : "gtk.Overlay",
    "kind" : "import",
    "line" : 194,
    "char" : 15
   },
   {
    "name" : "gtk.PadController",
    "kind" : "import",
    "line" : 195,
    "char" : 15
   },
   {
    "name" : "gtk.PageSetup",
    "kind" : "import",
    "line" : 196,
    "char" : 15
   },
   {
    "name" : "gtk.Paned",
    "kind" : "import",
    "line" : 197,
    "char" : 15
   },
   {
    "name" : "gtk.PanedAccessible",
    "kind" : "import",
    "line" : 198,
    "char" : 15
   },
   {
    "name" : "gtk.PaperSize",
    "kind" : "import",
    "line" : 199,
    "char" : 15
   },
   {
    "name" : "gtk.PlacesSidebar",
    "kind" : "import",
    "line" : 200,
    "char" : 15
   },
   {
    "name" : "gtk.Plug",
    "kind" : "import",
    "line" : 201,
    "char" : 15
   },
   {
    "name" : "gtk.Popover",
    "kind" : "import",
    "line" : 202,
    "char" : 15
   },
   {
    "name" : "gtk.PopoverAccessible",
    "kind" : "import",
    "line" : 203,
    "char" : 15
   },
   {
    "name" : "gtk.PopoverMenu",
    "kind" : "import",
    "line" : 204,
    "char" : 15
   },
   {
    "name" : "gtk.PopupBox",
    "kind" : "import",
    "line" : 205,
    "char" : 15
   },
   {
    "name" : "gtk.PrintContext",
    "kind" : "import",
    "line" : 206,
    "char" : 15
   },
   {
    "name" : "gtk.PrintOperation",
    "kind" : "import",
    "line" : 207,
    "char" : 15
   },
   {
    "name" : "gtk.PrintOperationPreview",
    "kind" : "import",
    "line" : 208,
    "char" : 15
   },
   {
    "name" : "gtk.PrintOperationPreviewIF",
    "kind" : "import",
    "line" : 209,
    "char" : 15
   },
   {
    "name" : "gtk.PrintOperationPreviewT",
    "kind" : "import",
    "line" : 210,
    "char" : 15
   },
   {
    "name" : "gtk.PrintSettings",
    "kind" : "import",
    "line" : 211,
    "char" : 15
   },
   {
    "name" : "gtk.ProgressBar",
    "kind" : "import",
    "line" : 212,
    "char" : 15
   },
   {
    "name" : "gtk.ProgressBarAccessible",
    "kind" : "import",
    "line" : 213,
    "char" : 15
   },
   {
    "name" : "gtk.RadioAction",
    "kind" : "import",
    "line" : 214,
    "char" : 15
   },
   {
    "name" : "gtk.RadioButton",
    "kind" : "import",
    "line" : 215,
    "char" : 15
   },
   {
    "name" : "gtk.RadioButtonAccessible",
    "kind" : "import",
    "line" : 216,
    "char" : 15
   },
   {
    "name" : "gtk.RadioMenuItem",
    "kind" : "import",
    "line" : 217,
    "char" : 15
   },
   {
    "name" : "gtk.RadioMenuItemAccessible",
    "kind" : "import",
    "line" : 218,
    "char" : 15
   },
   {
    "name" : "gtk.RadioToolButton",
    "kind" : "import",
    "line" : 219,
    "char" : 15
   },
   {
    "name" : "gtk.Range",
    "kind" : "import",
    "line" : 220,
    "char" : 15
   },
   {
    "name" : "gtk.RangeAccessible",
    "kind" : "import",
    "line" : 221,
    "char" : 15
   },
   {
    "name" : "gtk.RcProperty",
    "kind" : "import",
    "line" : 222,
    "char" : 15
   },
   {
    "name" : "gtk.RcStyle",
    "kind" : "import",
    "line" : 223,
    "char" : 15
   },
   {
    "name" : "gtk.RecentAction",
    "kind" : "import",
    "line" : 224,
    "char" : 15
   },
   {
    "name" : "gtk.RecentChooserDialog",
    "kind" : "import",
    "line" : 225,
    "char" : 15
   },
   {
    "name" : "gtk.RecentChooserIF",
    "kind" : "import",
    "line" : 226,
    "char" : 15
   },
   {
    "name" : "gtk.RecentChooserMenu",
    "kind" : "import",
    "line" : 227,
    "char" : 15
   },
   {
    "name" : "gtk.RecentChooserT",
    "kind" : "import",
    "line" : 228,
    "char" : 15
   },
   {
    "name" : "gtk.RecentChooserWidget",
    "kind" : "import",
    "line" : 229,
    "char" : 15
   },
   {
    "name" : "gtk.RecentFilter",
    "kind" : "import",
    "line" : 230,
    "char" : 15
   },
   {
    "name" : "gtk.RecentInfo",
    "kind" : "import",
    "line" : 231,
    "char" : 15
   },
   {
    "name" : "gtk.RecentManager",
    "kind" : "import",
    "line" : 232,
    "char" : 15
   },
   {
    "name" : "gtk.RendererCellAccessible",
    "kind" : "import",
    "line" : 233,
    "char" : 15
   },
   {
    "name" : "gtk.Requisition",
    "kind" : "import",
    "line" : 234,
    "char" : 15
   },
   {
    "name" : "gtk.Revealer",
    "kind" : "import",
    "line" : 235,
    "char" : 15
   },
   {
    "name" : "gtk.Scale",
    "kind" : "import",
    "line" : 236,
    "char" : 15
   },
   {
    "name" : "gtk.ScaleAccessible",
    "kind" : "import",
    "line" : 237,
    "char" : 15
   },
   {
    "name" : "gtk.ScaleButton",
    "kind" : "import",
    "line" : 238,
    "char" : 15
   },
   {
    "name" : "gtk.ScaleButtonAccessible",
    "kind" : "import",
    "line" : 239,
    "char" : 15
   },
   {
    "name" : "gtk.ScrollableIF",
    "kind" : "import",
    "line" : 240,
    "char" : 15
   },
   {
    "name" : "gtk.ScrollableT",
    "kind" : "import",
    "line" : 241,
    "char" : 15
   },
   {
    "name" : "gtk.Scrollbar",
    "kind" : "import",
    "line" : 242,
    "char" : 15
   },
   {
    "name" : "gtk.ScrolledWindow",
    "kind" : "import",
    "line" : 243,
    "char" : 15
   },
   {
    "name" : "gtk.ScrolledWindowAccessible",
    "kind" : "import",
    "line" : 244,
    "char" : 15
   },
   {
    "name" : "gtk.SearchBar",
    "kind" : "import",
    "line" : 245,
    "char" : 15
   },
   {
    "name" : "gtk.SearchEntry",
    "kind" : "import",
    "line" : 246,
    "char" : 15
   },
   {
    "name" : "gtk.SelectionData",
    "kind" : "import",
    "line" : 247,
    "char" : 15
   },
   {
    "name" : "gtk.Separator",
    "kind" : "import",
    "line" : 248,
    "char" : 15
   },
   {
    "name" : "gtk.SeparatorMenuItem",
    "kind" : "import",
    "line" : 249,
    "char" : 15
   },
   {
    "name" : "gtk.SeparatorToolItem",
    "kind" : "import",
    "line" : 250,
    "char" : 15
   },
   {
    "name" : "gtk.Settings",
    "kind" : "import",
    "line" : 251,
    "char" : 15
   },
   {
    "name" : "gtk.ShortcutLabel",
    "kind" : "import",
    "line" : 252,
    "char" : 15
   },
   {
    "name" : "gtk.ShortcutsGroup",
    "kind" : "import",
    "line" : 253,
    "char" : 15
   },
   {
    "name" : "gtk.ShortcutsSection",
    "kind" : "import",
    "line" : 254,
    "char" : 15
   },
   {
    "name" : "gtk.ShortcutsShortcut",
    "kind" : "import",
    "line" : 255,
    "char" : 15
   },
   {
    "name" : "gtk.ShortcutsWindow",
    "kind" : "import",
    "line" : 256,
    "char" : 15
   },
   {
    "name" : "gtk.SizeGroup",
    "kind" : "import",
    "line" : 257,
    "char" : 15
   },
   {
    "name" : "gtk.Socket",
    "kind" : "import",
    "line" : 258,
    "char" : 15
   },
   {
    "name" : "gtk.SpinButton",
    "kind" : "import",
    "line" : 259,
    "char" : 15
   },
   {
    "name" : "gtk.SpinButtonAccessible",
    "kind" : "import",
    "line" : 260,
    "char" : 15
   },
   {
    "name" : "gtk.Spinner",
    "kind" : "import",
    "line" : 261,
    "char" : 15
   },
   {
    "name" : "gtk.SpinnerAccessible",
    "kind" : "import",
    "line" : 262,
    "char" : 15
   },
   {
    "name" : "gtk.Stack",
    "kind" : "import",
    "line" : 263,
    "char" : 15
   },
   {
    "name" : "gtk.StackAccessible",
    "kind" : "import",
    "line" : 264,
    "char" : 15
   },
   {
    "name" : "gtk.StackSidebar",
    "kind" : "import",
    "line" : 265,
    "char" : 15
   },
   {
    "name" : "gtk.StackSwitcher",
    "kind" : "import",
    "line" : 266,
    "char" : 15
   },
   {
    "name" : "gtk.Statusbar",
    "kind" : "import",
    "line" : 267,
    "char" : 15
   },
   {
    "name" : "gtk.StatusbarAccessible",
    "kind" : "import",
    "line" : 268,
    "char" : 15
   },
   {
    "name" : "gtk.StatusIcon",
    "kind" : "import",
    "line" : 269,
    "char" : 15
   },
   {
    "name" : "gtk.StockItem",
    "kind" : "import",
    "line" : 270,
    "char" : 15
   },
   {
    "name" : "gtk.Style",
    "kind" : "import",
    "line" : 271,
    "char" : 15
   },
   {
    "name" : "gtk.StyleContext",
    "kind" : "import",
    "line" : 272,
    "char" : 15
   },
   {
    "name" : "gtk.StyleProperties",
    "kind" : "import",
    "line" : 273,
    "char" : 15
   },
   {
    "name" : "gtk.StyleProviderIF",
    "kind" : "import",
    "line" : 274,
    "char" : 15
   },
   {
    "name" : "gtk.StyleProviderT",
    "kind" : "import",
    "line" : 275,
    "char" : 15
   },
   {
    "name" : "gtk.Switch",
    "kind" : "import",
    "line" : 276,
    "char" : 15
   },
   {
    "name" : "gtk.SwitchAccessible",
    "kind" : "import",
    "line" : 277,
    "char" : 15
   },
   {
    "name" : "gtk.SymbolicColor",
    "kind" : "import",
    "line" : 278,
    "char" : 15
   },
   {
    "name" : "gtk.Table",
    "kind" : "import",
    "line" : 279,
    "char" : 15
   },
   {
    "name" : "gtk.TargetEntry",
    "kind" : "import",
    "line" : 280,
    "char" : 15
   },
   {
    "name" : "gtk.TargetList",
    "kind" : "import",
    "line" : 281,
    "char" : 15
   },
   {
    "name" : "gtk.TearoffMenuItem",
    "kind" : "import",
    "line" : 282,
    "char" : 15
   },
   {
    "name" : "gtk.Testing",
    "kind" : "import",
    "line" : 283,
    "char" : 15
   },
   {
    "name" : "gtk.TextAttributes",
    "kind" : "import",
    "line" : 284,
    "char" : 15
   },
   {
    "name" : "gtk.TextBuffer",
    "kind" : "import",
    "line" : 285,
    "char" : 15
   },
   {
    "name" : "gtk.TextCellAccessible",
    "kind" : "import",
    "line" : 286,
    "char" : 15
   },
   {
    "name" : "gtk.TextChildAnchor",
    "kind" : "import",
    "line" : 287,
    "char" : 15
   },
   {
    "name" : "gtk.TextIter",
    "kind" : "import",
    "line" : 288,
    "char" : 15
   },
   {
    "name" : "gtk.TextMark",
    "kind" : "import",
    "line" : 289,
    "char" : 15
   },
   {
    "name" : "gtk.TextTag",
    "kind" : "import",
    "line" : 290,
    "char" : 15
   },
   {
    "name" : "gtk.TextTagTable",
    "kind" : "import",
    "line" : 291,
    "char" : 15
   },
   {
    "name" : "gtk.TextView",
    "kind" : "import",
    "line" : 292,
    "char" : 15
   },
   {
    "name" : "gtk.TextViewAccessible",
    "kind" : "import",
    "line" : 293,
    "char" : 15
   },
   {
    "name" : "gtk.ThemingEngine",
    "kind" : "import",
    "line" : 294,
    "char" : 15
   },
   {
    "name" : "gtk.ToggleAction",
    "kind" : "import",
    "line" : 295,
    "char" : 15
   },
   {
    "name" : "gtk.ToggleButton",
    "kind" : "import",
    "line" : 296,
    "char" : 15
   },
   {
    "name" : "gtk.ToggleButtonAccessible",
    "kind" : "import",
    "line" : 297,
    "char" : 15
   },
   {
    "name" : "gtk.ToggleToolButton",
    "kind" : "import",
    "line" : 298,
    "char" : 15
   },
   {
    "name" : "gtk.Toolbar",
    "kind" : "import",
    "line" : 299,
    "char" : 15
   },
   {
    "name" : "gtk.ToolButton",
    "kind" : "import",
    "line" : 300,
    "char" : 15
   },
   {
    "name" : "gtk.ToolItem",
    "kind" : "import",
    "line" : 301,
    "char" : 15
   },
   {
    "name" : "gtk.ToolItemGroup",
    "kind" : "import",
    "line" : 302,
    "char" : 15
   },
   {
    "name" : "gtk.ToolPalette",
    "kind" : "import",
    "line" : 303,
    "char" : 15
   },
   {
    "name" : "gtk.ToolShellIF",
    "kind" : "import",
    "line" : 304,
    "char" : 15
   },
   {
    "name" : "gtk.ToolShellT",
    "kind" : "import",
    "line" : 305,
    "char" : 15
   },
   {
    "name" : "gtk.Tooltip",
    "kind" : "import",
    "line" : 306,
    "char" : 15
   },
   {
    "name" : "gtk.ToplevelAccessible",
    "kind" : "import",
    "line" : 307,
    "char" : 15
   },
   {
    "name" : "gtk.TreeDragDestIF",
    "kind" : "import",
    "line" : 308,
    "char" : 15
   },
   {
    "name" : "gtk.TreeDragDestT",
    "kind" : "import",
    "line" : 309,
    "char" : 15
   },
   {
    "name" : "gtk.TreeDragSourceIF",
    "kind" : "import",
    "line" : 310,
    "char" : 15
   },
   {
    "name" : "gtk.TreeDragSourceT",
    "kind" : "import",
    "line" : 311,
    "char" : 15
   },
   {
    "name" : "gtk.TreeIter",
    "kind" : "import",
    "line" : 312,
    "char" : 15
   },
   {
    "name" : "gtk.TreeIterError",
    "kind" : "import",
    "line" : 313,
    "char" : 15
   },
   {
    "name" : "gtk.TreeModel",
    "kind" : "import",
    "line" : 314,
    "char" : 15
   },
   {
    "name" : "gtk.TreeModelFilter",
    "kind" : "import",
    "line" : 315,
    "char" : 15
   },
   {
    "name" : "gtk.TreeModelIF",
    "kind" : "import",
    "line" : 316,
    "char" : 15
   },
   {
    "name" : "gtk.TreeModelSort",
    "kind" : "import",
    "line" : 317,
    "char" : 15
   },
   {
    "name" : "gtk.TreeModelT",
    "kind" : "import",
    "line" : 318,
    "char" : 15
   },
   {
    "name" : "gtk.TreeNode",
    "kind" : "import",
    "line" : 319,
    "char" : 15
   },
   {
    "name" : "gtk.TreePath",
    "kind" : "import",
    "line" : 320,
    "char" : 15
   },
   {
    "name" : "gtk.TreeRowReference",
    "kind" : "import",
    "line" : 321,
    "char" : 15
   },
   {
    "name" : "gtk.TreeSelection",
    "kind" : "import",
    "line" : 322,
    "char" : 15
   },
   {
    "name" : "gtk.TreeSortableIF",
    "kind" : "import",
    "line" : 323,
    "char" : 15
   },
   {
    "name" : "gtk.TreeSortableT",
    "kind" : "import",
    "line" : 324,
    "char" : 15
   },
   {
    "name" : "gtk.TreeStore",
    "kind" : "import",
    "line" : 325,
    "char" : 15
   },
   {
    "name" : "gtk.TreeView",
    "kind" : "import",
    "line" : 326,
    "char" : 15
   },
   {
    "name" : "gtk.TreeViewAccessible",
    "kind" : "import",
    "line" : 327,
    "char" : 15
   },
   {
    "name" : "gtk.TreeViewColumn",
    "kind" : "import",
    "line" : 328,
    "char" : 15
   },
   {
    "name" : "gtk.UIManager",
    "kind" : "import",
    "line" : 329,
    "char" : 15
   },
   {
    "name" : "gtk.VBox",
    "kind" : "import",
    "line" : 330,
    "char" : 15
   },
   {
    "name" : "gtk.VButtonBox",
    "kind" : "import",
    "line" : 331,
    "char" : 15
   },
   {
    "name" : "gtk.Version",
    "kind" : "import",
    "line" : 332,
    "char" : 15
   },
   {
    "name" : "gtk.Viewport",
    "kind" : "import",
    "line" : 333,
    "char" : 15
   },
   {
    "name" : "gtk.VolumeButton",
    "kind" : "import",
    "line" : 334,
    "char" : 15
   },
   {
    "name" : "gtk.VPaned",
    "kind" : "import",
    "line" : 335,
    "char" : 15
   },
   {
    "name" : "gtk.VScale",
    "kind" : "import",
    "line" : 336,
    "char" : 15
   },
   {
    "name" : "gtk.VScrollbar",
    "kind" : "import",
    "line" : 337,
    "char" : 15
   },
   {
    "name" : "gtk.VSeparator",
    "kind" : "import",
    "line" : 338,
    "char" : 15
   },
   {
    "name" : "gtk.Widget",
    "kind" : "import",
    "line" : 339,
    "char" : 15
   },
   {
    "name" : "gtk.WidgetAccessible",
    "kind" : "import",
    "line" : 340,
    "char" : 15
   },
   {
    "name" : "gtk.WidgetClass",
    "kind" : "import",
    "line" : 341,
    "char" : 15
   },
   {
    "name" : "gtk.WidgetPath",
    "kind" : "import",
    "line" : 342,
    "char" : 15
   },
   {
    "name" : "gtk.Window",
    "kind" : "import",
    "line" : 343,
    "char" : 15
   },
   {
    "name" : "gtk.WindowAccessible",
    "kind" : "import",
    "line" : 344,
    "char" : 15
   },
   {
    "name" : "gtk.WindowGroup",
    "kind" : "import",
    "line" : 345,
    "char" : 15
   }
  ]
 },


July 13

On 13.07.2017 01:55, FoxyBrown wrote:
> On Tuesday, 11 July 2017 at 07:16:33 UTC, Rainer Schuetze wrote:
>>
>>
>> On 07.07.2017 19:23, FoxyBrown wrote:
>>> Hi, I get no intellisense with visual d when using gtk.
>>>
>>> I use a file that imports all of gtk, like so:
>>>
>>>
>>> module gtk.All;
>>>
>>> public import gtk.AboutDialog;
>>> ...
>>> public import gtk.WindowGroup;
>>>
>>> then I use
>>>
>>> import gtk = gtk.All
>>>
>>> but when using
>>>
>>> gtk.
>>> or gtk.WindowGroup.
>>>
>>> or somegtkWidget.
>>>
>>> no intellisense ever appears or it appears with only the basic object elements.
>>>
>>>
>>> This makes it very hard to navigate through gtk as I am unfamiliar with most of the nomenclature.
>>>
>>> Is there any way to get VisualD to properly show the intellisense for these objects and modules? Even if necessarily having to specify direct inclusion.
>>>
>>> If I just do
>>>
>>> gtk.gtk.gtk.gtk.gtk.gtk.gtk....
>>>
>>> in an empty d file it goes on and on always listing the same intellisense. Changing things like gtk.gtkd.gtk.gtkd.... doesnt change the results.
>>>
>>> The intellisense listed is ByRecord, Error, Exception, File, Interface, etc. I do not think they are part of gtk.
>>
>> AFAICT the completion has problems with public imports in imported modules: they don't add any symbols. This should be fixed in https://github.com/dlang/visuald/releases/tag/v0.45.0-rc1
>>
>>
>>>
>>> In any case, it clearly isn't working and there doesn't seem to be any way to correct it. It would be nice if we could precompile intellisense data from a set of modules(e.g., specify that it build an intellisense database from a directory recursively... probably would be faster too). Phobos, gtk, and other libraries generally do not change often enough that it should work well.
>>
>> If you let the compiler generate JSON data for your project (see language options), Visual D can add the contained symbols to the completion lists. You can also add precompiled JSON files (see global options). This doesn't use any scope information, though, so the list can grow enormously.
>>
>>  One of the biggest issues I seem to have with
>>> Visual D is intellisense not really working correctly, if it works at all, but this isn't a hard problem, is it?
>>
>> You bet it is ;-) It needs to rebuild the compiler front end, just being more friendly regarding error recovery and incremental changes. Visual D uses dparser from the Mono-D project, which still seems the most extensive solution.
> 
> No luck. gtk. does nothing intellisense wise. I have all the check boxes checked under language options/intellisense.

It works for me, but takes a couple of seconds to digest all the gtk files. There is no completion before that finishes. I've tried it with a file looking like this:

module gtkAll;

public import gtk.AboutDialog;
public import gtk.AccelGroup;
...


> In the solution.json file, There is this, which only seems to be import modules and enums, no functions are added, maybe that is the problem? I do not have the gtk files in the solution(they are only imported during compilation), do I need to import them in to the solution for everything to work? (
> 
> [
>   {
>    "name" : "gtk.All",
>    "kind" : "module",
>    "file" : "..\\..\\..\\DLang\\GtkD\\generated\\gtkd\\gtk\\All.d",
>    "members" : [
>     {
>      "name" : "gtk.AboutDialog",
>      "kind" : "import",
>      "line" : 3,
>      "char" : 15
>     },
...
>    ]
>   },
> 

The project built JSON file only covers the files actually in the project. You can create a full JSON file with the help of rdmd, e.g.

rdmd -X gtkd\gtkAll.d

That will likely fail due to object file generation or link errors, but should still build the JSON file.