This project is read-only.

Tabs

Sep 1, 2008 at 7:23 PM
Just some feedback, the most annoying issue to me right now with BooLangStudio is how it doesn't respect the tab settings.

When I set my tab size and indent size to 4 and set "Keep Tabs", BooLangStudio still inserts 2 spaces after pressing enter after creating a new method.


Oct 12, 2008 at 1:54 PM
The indent/dedent code is flaky in the current release, however I've just committed a fix to trunk that should resolve your issue. You can either compile the source yourself, or wait for our next public release.
Oct 12, 2008 at 3:44 PM
thanks james, i appreciate you giving this some attention.. do you
have any tests for the fix? This is something i'd like us to start
doing for bug fixes, where possible (I understand and accept that VSX
wasn't built for testability and that everything we do can't be
covered by a regression test).

i think its about time i merged your changes into master, i'll get
that done in the next few days

also (and maybe this is a topic for another discussion), ive spoken to
justin recently and it turns out that the latest sp1 SDK breaks
boolangstudio, currently... he said he would be looking into the
issue... additionally.. i'm preparing to drop the boo-based
BooPegLexer in favor of one based upon OMetaSharp.. hopefully that
will fix some problems in building from source (the hassle around
having to rebuild Boo.Pegs every time you upgrade boo deps, strongname
issues around that, etc)...

either way.. i'd like us to work on identifying and eliminating the
bugs that [the few] users of boolangstudio after the alpha 1 release
have identified... it's in a quite unusable state, currently.. mostly
because of some weird issues that crept in at the last minute (the
most annoying of which, currently, is the problem where you can't add
files to the project.. this basically makes things unusable)
Oct 12, 2008 at 6:54 PM
Hey Jeff,

I've been pulling my hair out over this for days, so you'll have to excuse the lack of tests. It was one of those "Shit, it works!" moments... ;) I'll get some tests in as soon as I can. Same for my other changes too. I've been struggling with doing TDD on BLS because I just don't know the API well enough, so its hard to know even what direction to head in. Still, I agree tests are very important, especially with something so brittle as the VS API.

There's one caveat to the indentation, it now looks at your preferences to see if you're using tabs or spaces, so if you're using tabs and you've got a space indented file then it'll still just put tabs in it. I can look at this at some point, if it's an issue.

We should probably upgrade to SP1 at some point, but are there any immediate benefits that outweigh getting the other things done?

I'm hoping to get some more work done on BLS over the next week or so, after a particularly dry spot. I think I got a little bit disheartened with my complete lack of progress, there's so damn little documentation out there, especially when it comes to dealing with intellisense.

On Sun, Oct 12, 2008 at 3:44 PM, olsonjeffery <notifications@codeplex.com> wrote:

From: olsonjeffery

thanks james, i appreciate you giving this some attention.. do you
have any tests for the fix? This is something i'd like us to start
doing for bug fixes, where possible (I understand and accept that VSX
wasn't built for testability and that everything we do can't be
covered by a regression test).

i think its about time i merged your changes into master, i'll get
that done in the next few days

also (and maybe this is a topic for another discussion), ive spoken to
justin recently and it turns out that the latest sp1 SDK breaks
boolangstudio, currently... he said he would be looking into the
issue... additionally.. i'm preparing to drop the boo-based
BooPegLexer in favor of one based upon OMetaSharp.. hopefully that
will fix some problems in building from source (the hassle around
having to rebuild Boo.Pegs every time you upgrade boo deps, strongname
issues around that, etc)...

either way.. i'd like us to work on identifying and eliminating the
bugs that [the few] users of boolangstudio after the alpha 1 release
have identified... it's in a quite unusable state, currently.. mostly
because of some weird issues that crept in at the last minute (the
most annoying of which, currently, is the problem where you can't add
files to the project.. this basically makes things unusable)

Read the full discussion online.

To add a post to this discussion, reply to this email (BooLangStudio@discussions.codeplex.com)

To start a new discussion for this project, email BooLangStudio@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe or change your settings on codePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at codeplex.com


Oct 13, 2008 at 4:23 PM
Edited Oct 13, 2008 at 4:29 PM

update: FYI, do not author these things in Chrome!

Here is an example of VS unit tests and integration tests in NBusiness:

NBusiness Visual Studio Source Path

I really haven't made any yet but when I created the plugin project the template also created some test projects for me. There is at least one example of how to pop open VS and simulate button clicks and whatnot in a unit test. It's pretty ugly but it seems very powerful still... here is a snippet:

        [TestMethod]
        [HostType("VS IDE")]
        public void PackageLoadTest()
        {
            UIThreadInvoker.Invoke((ThreadInvoker)delegate()
            {

                //Get the Shell Service

                IVsShell shellService = VsIdeTestHostContext.ServiceProvider.GetService(typeof(SVsShell)) as IVsShell;
                Assert.IsNotNull(shellService);

                //Validate package load

                IVsPackage package;
                //Guid packageGuid = new Guid(NBusiness.VisualStudio.GuidList.guidVisualStudioPkgString);

                //Assert.IsTrue(0 == shellService.LoadPackage(ref packageGuid, out package));

                //Assert.IsNotNull(package, "Package failed to load");


            });
        }