Giter Site home page Giter Site logo

vsgenero's Introduction

VSGenero

This is a Visual Studio extension for the Genero BDL. It supports Visual Studio 2013 and above.

The goal of this project is to provide an experience similar to the C# (or other .NET) editor in Visual Studio. It provides functionality such as syntax highlighting, function list (via standard editor dropdown), and intellisense features like typing auto-complete and auto-indent, function signature info, quick info (via hover-over), language snippets, and more.

The VSGenero extension also exposes a number of APIs that allow for another Visual Studio extension to work hand-in-hand with it. These APIs can give access to global function repositories (for those using legacy linking), database information, importable modules and include files, and dynamic function snippet generation. This additional functionality all integrates seamlessly with VSGenero's intellisense engine.

vsgenero's People

Contributors

gregfullman avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

vsgenero's Issues

Intellisense download and reload causes null exception

To repo:

1.Open a 4gl file.
2.Go to Tools -> Options... > Text Editor -> Genero4GL -> Intellisense
3. "Click Download latest contexts"
4. "Click Reload completion contexts"
5. Click OK
6. Dialog closes and returns to the opened 4gl file focused.

Result:
After a short while an error dialog will repeatedly show with the details:

Exception Type: System.NullReferenceException
Message: Object reference not set to an instance of an object.
Source: VSGenero2015
TargetMethod: [VSGenero2015]VSGenero.Options.Genero4GLIntellisenseOptionsControl::_timer_Tick()

StackTrace:
at VSGenero.Options.Genero4GLIntellisenseOptionsControl._timer_Tick(Object sender, EventArgs e)

InnerException:
System.NullReferenceException
Object reference not set to an instance of an object.
[VSGenero2015]VSGenero.Options.Genero4GLIntellisenseOptionsControl::_timer_Tick()

Other Info:

Cursor Intellisense

Current intellisense for cursors leaves a lot to be desired. Since there are quite a few ways that cursors can be declared and prepared, it's tough to do a reverse analysis of all possible cases.

{ } comments cause go to definition to go to wrong location

If you use "Go To Definition" for a function which is in a file which uses {} type comments, the cursor will be put in the wrong location. The cursor location will be offset by the number of lines in the block comment.

EG:

{this
is some
comment }
function Foo()
end function

Going to the definition of Foo will place the cursor three lines lower than function Foo.

Scheme causes "main block found in incorrect position"

It appears the schema keyword is confusing the editor. In the code below, function is underlined with "main block found in incorrect position" and the "go to definition" cannot find foo.

VS 2015
VSGenero 0.9.7.6.

schema test

define foo decimal(10,2)

main 
      call test()
end main

function test()
       let foo = 10
end function

Thank you for the excellent plug in.

A few issues with function signature display

  1. Bolded position (in VS2013) doesn't always show up correctly.
  2. Ideally the signature display should show up if a comma is hit, because the signature display disappears if you copy and paste something (or do something else). Obviously it needs to be smart about this.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.