WC09 final beta 3 bugs and comments

Beta related comments, bug reports etc. Please leave as many details as possible.

WC09 final beta 3 bugs and comments

Postby PugFish » Tue Mar 10, 2009 2:45 pm

First i'd just like to say how awesome WebCoder and phpCoder are :D I only recently found them and am kicking myself for not finding them sooner. I've found it really hard to find an editor that works how I want and has the right feel, but so far i'm finding WC and phpC far better than anything else and scripting just makes them doubly awesome :)

I've been using them about a week and i've been jotting down problems and suggestions for WC09 to post here, but some also apply to phpCoder

Bugs:
  1. The JavaScript parser gets confused when passing an object into the constructor of a new class instance and an object shows up in the document pane with no name
    javascript_object_problem.png
    Screenshot of bug #1
    javascript_object_problem.png (15.96 KiB) Viewed 571 times
  2. Related to the above, objects shouldn't show up in both the object and variable list.
  3. Again related to the above, variables assigned with "new Class()" etc should show up as objects.
  4. For PHP, types are marked as a reserved word in the editor but they aren't. For example "callback" can be used as a function name. (phpCoder too)
  5. Related to the above, when a reserved word is used as a function name the parser gets confused. In WC09 it detects classes and class functions declared after it as global functions whereas in phpCoder it shows up $this as a class variable if used in a class function. I don't think this is a big problem as you can't use reserved words as function names, but I thought i'd report it as it messes things up relating to bug #4.
    php_parser_problem_wc09.png
    Screenshot of bug #4 and #5 - WebCoder 2009
    php_parser_problem_wc09.png (41.9 KiB) Viewed 572 times

    php_parser_problem_phpc08.png
    Screenshot of bug #4 and #5 - phpCoder
    php_parser_problem_phpc08.png (46.29 KiB) Viewed 571 times
  6. Matching PHP brackets don't highlight.
  7. The file associations window is resizable but the contents don't resize with it. (phpCoder too)
  8. In very large files the scrollbar handle gets very small. Not necessarily a bug but make it hard to use. It hits its minimum size after 6540 lines but this is only 5 pixels high. (phpCoder too)
  9. The syntax coloring tab in the settings asks if you want to save the settings for the current language if you change to another even if you didn't change anything. (phpCoder too)

Feature requests and Suggestions:
These are some things I'd find quite handy, just throwing them out there as ideas. I'm sure some are achievable through scripting but i've only dabbled with it so far.
  1. Something to count all the matches when using the search dialog
  2. FIXME, TODO, @todo etc tags in comments automatically parsed and show up in the todo list
  3. The option to have tabs on the document tab bar wrap round onto multiple lines instead of scrolling across
  4. Ability to change the font face and size in the syntax coloring for individual settings
  5. Add PHP class variables that aren't declared but used in functions to the intellisense/document outline.
    e.g.
    Code: Select all
    class Test
    {
        public function func1() { $this->var1 = 'test'; }
        public function func2() { $this-> // When typing this, $this->var1 shows up in intellisense }
    }
  6. JavaScript code tidy. HTML, CSS and PHP have it so it just makes sense that JS should too.
  7. The option to automatically open the project tree to the currently active document when switching between them.
  8. When using the "Automatically complete single/double quotes" intellisense setting, if you type the ending quote anyway have it ignored and the caret skip ahead one character so the quote isn't doubled. e.g. type 'test' instead of 'test''.
  9. This is website related, but a compare features matrix would be nice for WebCoder/phpCoder/WebPad. I wasn't sure which to use at first until I installed them both and had a play around.

Lastly, i'd like to comment on your blog post about combining WebCoder and phpCoder as I don't believe the points against it you discuss are entirely true. Feel free to completely ignore all this as you know better which direction you want to go with them but i'd just like to throw my thoughts out there :)

I totally understand your desire to keep them lean and mean but I think keeping them separate creates usability problems that more than negate the pros of doing this. When working with HTML/CSS/JS you may not need the extra PHP functionality that phpCoder adds, but the opposite isn't true. When working with PHP you are almost always working on HTML and CSS too, and if you are doing AJAX stuff you will almost certainly be using all 4. This means PHP coders have 2 options, either solely use phpCoder and do without the extra stuff WebCoder gives you for HTML/CSS/JS or use both apps at once and put up with all the extra window switching, file opening, project tree traversing etc that comes with having 2 editors open.

I think a better solution is to have phpCoder be the bigger brother of WebCoder. It could be a superset of all the WC features so PHP devs get everything in one editor while non-PHP devs get a cheaper, lighter editor.

To touch on your comment in your blog post:
The thing will get bloated, with heavy load times and an interface that is difficult to use.

When not in debug mode, phpCoder has no extra tool windows or toolbars so apart from the drop down menu along the top the interface wouldn't be any harder to use than WebCoder 2009 is. Even if the load times were increased by a couple of seconds, this would more than make up for all the extra time being spent switching between editors. I believe running 2 editors is actually more bloated; you have double the load times, double the memory usage, double the windows open, double the disk space used, double everything basically.

Here's some other advantages I can think of to support this:
  1. Simpler for customers to use; all the points above along with only having to choose, buy, install and update 1 app.
  2. Quicker updates for customers; instead of the tick-tock updates that happen now (WC 2007, phpC 2008, WC 2009) both editors would benefit from changes and could be released at the same time.
  3. Easier development for you; changes and bug fixes would automatically apply to both as they're on the same release cycle.

Despite all the above, I am still going to buy both apps as soon as WC09 is released. Even as 2 apps they kick other editor's butts :D
PugFish
 
Posts: 32
Joined: Tue Mar 10, 2009 9:59 am

Re: WC09 final beta 3 bugs and comments

Postby HyBreeD » Wed Mar 11, 2009 1:35 pm

I'll look into the javascript issues when I get the chance (When I'm off work AND they've gotten my internet connection working again). :)
The issues are in reality minor, they're just how I chose to represent them, so they're easily fixed - The JS tidy, what should it do? Just rearrange statements?
- Brian Hjøllund
HyBreeD
Parser Extraordinaire
 
Posts: 17
Joined: Tue Jul 29, 2008 1:09 pm

Re: WC09 final beta 3 bugs and comments

Postby PugFish » Wed Mar 11, 2009 2:06 pm

Yea, same kind of options as PHP and HTML.
PugFish
 
Posts: 32
Joined: Tue Mar 10, 2009 9:59 am

Re: WC09 final beta 3 bugs and comments

Postby HyBreeD » Wed Mar 11, 2009 2:21 pm

Sorry, but I've stayed clear of PHP thus far, and I've never used HTML Tidy. :)
But I'll look them up. ;)
- Brian Hjøllund
HyBreeD
Parser Extraordinaire
 
Posts: 17
Joined: Tue Jul 29, 2008 1:09 pm

Re: WC09 final beta 3 bugs and comments

Postby PugFish » Wed Mar 11, 2009 2:37 pm

I actually meant CSS instead of HTML, dunno how I managed to type that wrong :lol:
They just do stuff like specifying the spaces and new lines around brackets and statements to keep the code formatted uniformly.
PugFish
 
Posts: 32
Joined: Tue Mar 10, 2009 9:59 am

Re: WC09 final beta 3 bugs and comments

Postby PugFish » Wed Mar 11, 2009 10:04 pm

Just noticed that feature request #8 is actually implemented, but it doesn't work properly. If you just type "" or [] it works fine, but entering anything inside them such as "test" and [test] and it doesn't work, you end up with "test"" and [test]]

Came across some more stuff:
  1. CSS code tidy doesn't seem to work at all
  2. CSS code tidy preview formatting in settings dialog is wrong when you first open settings, but as soon as you click a setting it fixes itself
  3. Code tidy previews don't update until you move onto another setting, much better if they updated when a value is changed
  4. Can't see all of HTML code tidy preview, first line is covered
  5. A code preview for syntax colouring like in code tidy instead of just "Sample text" would be very handy
PugFish
 
Posts: 32
Joined: Tue Mar 10, 2009 9:59 am

Re: WC09 final beta 3 bugs and comments

Postby HyBreeD » Thu Mar 12, 2009 8:47 pm

I'll do a js tidy at a later date, as a seperate "product" - It's a big undertaking, that I wont be able have done by the time Kasper would like to ship Webcoder. :)
- Brian Hjøllund
HyBreeD
Parser Extraordinaire
 
Posts: 17
Joined: Tue Jul 29, 2008 1:09 pm

Re: WC09 final beta 3 bugs and comments

Postby KasperTSW » Sat Mar 14, 2009 12:20 pm

Hi,

>First i'd just like to say how awesome WebCoder and phpCoder are :D I only recently found them and am kicking myself for not finding them sooner. I've found it really hard to find an editor that works how I want and has the right feel, but so far i'm finding WC and phpC far better than anything else and scripting just makes them doubly awesome :)

Thank you very much :)

># For PHP, types are marked as a reserved word in the editor but they aren't. For example "callback" can be used as a function name. (phpCoder too)

You're absolutely right. I have removed it from the highlighter, along with mixed and number, since they are pseudo types, for use in the PHP documentation only :). Nicely spotted.

># Related to the above, when a reserved word is used as a function name the parser gets confused. In WC09 it detects classes and class functions declared after it as global functions whereas in phpCoder it shows up $this as a class variable if used in a class function. I don't think this is a big problem as you can't use reserved words as function names, but I thought i'd report it as it messes things up relating to bug #4.

Well, as you say your self, reserved words should not be used as function names :)

>Matching PHP brackets don't highlight.

They highlight just fine here. Could this be related to a change in settings?

>The file associations window is resizable but the contents don't resize with it. (phpCoder too)

Fixed :)

>In very large files the scrollbar handle gets very small. Not necessarily a bug but make it hard to use. It hits its minimum size after 6540 lines but this is only 5 pixels high. (phpCoder too)

I'm not sure if there's anything I can do about that. Fortunately, most files being edited in phpCoder and WebCoder will usually be far less lines than that :)

>The syntax coloring tab in the settings asks if you want to save the settings for the current language if you change to another even if you didn't change anything. (phpCoder too)

Should be fixed for next beta :)

Overall for your suggestions, I would like to mention that we reached the first final beta version weeks ago and we're getting very close to _the_ final release. This means that I'm mostly fixing bugs, since introducing new features can also introduce new bugs :). So when I write "Not for this version", it's really a quick way of saying just that. I hope you understand :)

>1. Something to count all the matches when using the search dialog

Not for this version.

>2. FIXME, TODO, @todo etc tags in comments automatically parsed and show up in the todo list

Not for this version. I have it planned for next version of phpCoder though.

>3. The option to have tabs on the document tab bar wrap round onto multiple lines instead of scrolling across

Not currently possible for me to do, I'm afraid.

>4. Ability to change the font face and size in the syntax coloring for individual settings

It's actually possible, but I'm not sure why anyone would want it? Besides, it would really slow down text rendering :)

>5. Add PHP class variables that aren't declared but used in functions to the intellisense/document outline.

Does PHP really allow you to use undeclared variables like that?

> 6. JavaScript code tidy. HTML, CSS and PHP have it so it just makes sense that JS should too.

Planned for a future version :)

>7. The option to automatically open the project tree to the currently active document when switching between them.

Actually, I think someone implemented this as a script, when we betatested phpCoder. Try searching the forums :)

>8. When using the "Automatically complete single/double quotes" intellisense setting, if you type the ending quote anyway have it ignored and the caret skip ahead one character so the quote isn't doubled. e.g. type 'test' instead of 'test''.

As you say, it's already there, but only if you immediately type the matching bracket. I don't think we should go beyond that, since it could cause more problems than it actually fixes :)

>9. This is website related, but a compare features matrix would be nice for WebCoder/phpCoder/WebPad. I wasn't sure which to use at first until I installed them both and had a play around.

It's already there, and once WebCoder 2009 is released, there will actually be linked to it. Have a peak here: http://www.tsware.net/featurechart.php. I have an updated version ready also :)

Also, thank you very much for your insightful comments on the whole one product vs. several products thing. It's all very true, you have some good points, and it obviously makes me think about the strategy again :). You are missing a couple of things though. First of all, several HTML and CSS releated functions will not work very well when used within PHP. Documents are harder to parse, and WebCoder/phpCoder can't start interpreting code to guess paths etc. Take the new Inspect Mode function, for instance. It uses a parsed version of your HTML document to compare to the version rendered by the browser, so that when you point to an element in the browser, WebCoder can find this specific tag in it's own parse tree. Now, finding a tag like this is easy: <div id="myDiv">, but finding a tag like this is waaaay harder: echo "<" . $tagName . " id=\"" . $tagId . "\">"; - and that's just one example. Obviously, this could be a disclaimer - "Don't use this with your PHP code, it won't work!", but including a feature in a dedicated PHP editor, that won't work with PHP, is just not something I would feel like doing, and that was just one example.

However, with all this said, I'm always open for re-defining the strategy. The blog post was not meant as a "This is how the next 20 years will look", but more a statement of how I see it right now, with WebCoder and phpCoder as separate products. I might change this, and posts like yours can help me make the desicisions, so thank you :)
KasperTSW
Site Admin
 
Posts: 1469
Joined: Mon Jan 28, 2008 5:55 pm

Re: WC09 final beta 3 bugs and comments

Postby PugFish » Sun Mar 15, 2009 5:55 pm

They highlight just fine here. Could this be related to a change in settings?

You're right, it defaults to HTML highlighting for PHP files and bracket matching doesn't work in that but it does when switching to PHP highlighting, I guess it's still a bug though as it should work in both.

So when I write "Not for this version", it's really a quick way of saying just that.

That's what I expected.

Not currently possible for me to do, I'm afraid.

That's a shame, even on a 24" screen I manage to fill the tab bar quite easily :D

It's actually possible, but I'm not sure why anyone would want it? Besides, it would really slow down text rendering

I find it useful for comment styles specifically, but I'd rather keep it snappy :D

Does PHP really allow you to use undeclared variables like that?

PHP is pretty loose with declaring variables, you can even do something like:
Code: Select all
class Test { }
$test = new Test();
$test->test = true;

In my experience it's not uncommon to use undeclared class variables, especially with dynamic variables using __get() and __set().

Actually, I think someone implemented this as a script, when we betatested phpCoder. Try searching the forums

I couldn't find it but I might have a go myself just to get more acquainted with the scripting :)

As you say, it's already there, but only if you immediately type the matching bracket. I don't think we should go beyond that, since it could cause more problems than it actually fixes

Eclipse does it very well so it's definitely possible. I find myself doing it for empty brackets and then doing it out of habit at other times and expecting it to work so it can be a bit frustrating having to correct it. Maybe it would be better to just not have it at all if you don't want to implement it fully.

It's already there, and once WebCoder 2009 is released, there will actually be linked to it. Have a peak here: http://www.tsware.net/featurechart.php. I have an updated version ready also

I looked all over the site and couldn't find it before, but now I looked again and found it on the front page :D

It's all very true, you have some good points, and it obviously makes me think about the strategy again

I'm glad you are keeping an open mind :) My perspective is as a customer so while I can understand that some of it may be technically hard or impossible to implement, the cons are far outweighed by the pros of combining the products. Something like your tag example doesn't work even when there are 2 editors so it's not like a feature is being lost, there just has to be a comprimise as it can't function perfectly.

I have some more bugs i've come across:
  1. Settings dialog resizes but the contents don't, same as the file associations window did.
  2. When using CSS intellisense options "Automatically insert a colon/semicolon after a CSS property/value" it doubles them if they already exist. For example, using .test { clear: left; } Highlight "left" and type "right" and enter to complete the intellisense, you end up with .test { clear: right;; }
  3. Using ctrl-space can overwrite 2 previous characters. Type .test { } and move the caret inside the brackets, press ctrl-space then choose a property. You will end up with .test clear: }
  4. Some HTML tags don't automatically close when tag auto complete is on, so far i've found <style> and <script> but there may be others. Looking through the htmldefs xml files I can't see anything in common to cause this.
  5. Automatic outlining language switching doesn't work when moving the caret with the arrow keys, only when using the mouse. e.g. clicking inside <style> tags switches to CSS but moving with arrow keys stays in HTML mode.

And some other feature requests:
  1. Tool windows could receive mousewheel events when the cursor is over them but they're not focused, this would save having to click them and click back to the document just to scroll down lists.
  2. The option to have all the classes in your project show up in the intellisense list even if the files aren't included in code. This is useful when using autoloading in PHP5.
  3. When automatically completing an HTML tag, required attributes could automatically be put in. e.g. typing <style> automatically becomes <style type=""></style> and move the caret inside the quotes and open intellisense.
  4. This one is a long shot, but id's and classes in HTML could be parsed and show up in the CSS intellisense list for selectors.
PugFish
 
Posts: 32
Joined: Tue Mar 10, 2009 9:59 am

Re: WC09 final beta 3 bugs and comments

Postby KasperTSW » Mon Mar 16, 2009 9:53 pm

Hi again,

>You're right, it defaults to HTML highlighting for PHP files and bracket matching doesn't work in that but it does when switching to PHP highlighting, I guess it's still a bug though as it should work in both.

It should, and it does here, as long as you are within a block of PHP code of course. Is this not what you're seeing?

>In my experience it's not uncommon to use undeclared class variables, especially with dynamic variables using __get() and __set().

Okay, I will have to look into that for next version then. It's too big of a change to implement now :)

>Eclipse does it very well so it's definitely possible. I find myself doing it for empty brackets and then doing it out of habit at other times and expecting it to work so it can be a bit frustrating having to correct it. Maybe it would be better to just not have it at all if you don't want to implement it fully.

I don't agree with that at all :). The feature is meant to prevent duplicate ending brackets when people are typing just as fast as WebCoder can complete it for them. If you type [, and then text, you have plenty of time to realize that the bracket has been completed for you. And just because it doesn't work the same way as in Eclipse, or any other editor for that matter, doesn't mean that it's not fully implemented :)

>1. Settings dialog resizes but the contents don't, same as the file associations window did.

Fixed :)

>2. When using CSS intellisense options "Automatically insert a colon/semicolon after a CSS property/value" it doubles them if they already exist. For example, using .test { clear: left; } Highlight "left" and type "right" and enter to complete the intellisense, you end up with .test { clear: right;; }

Well sure. To prevent that, I could check if the next character is a ; when completing, but it still wouldn't work with properties which has multiple values. So whether you want this option enabled or not is really a matter of taste. WebCoder will try to act as intelligently as possible, but there are limits :)

>3. Using ctrl-space can overwrite 2 previous characters. Type .test { } and move the caret inside the brackets, press ctrl-space then choose a property. You will end up with .test clear: }

I can't seem to reproduce that. Are there any other details I need to see this behavior?

>4. Some HTML tags don't automatically close when tag auto complete is on, so far i've found <style> and <script> but there may be others. Looking through the htmldefs xml files I can't see anything in common to cause this.

I have answered this a couple of times before, so I hope it's okay that I give you the short version: Whenever you type <script>, you are officially within a CSS block and no longer within HTML code, which turns off the HTML auto complete features to avoid confusion. Fixing this would be a bit of a hack and require more work than I think it's worth. Thank you for your understanding :)

>5. Automatic outlining language switching doesn't work when moving the caret with the arrow keys, only when using the mouse. e.g. clicking inside <style> tags switches to CSS but moving with arrow keys stays in HTML mode.

Okay, please let me know how it works out for you in the next beta version :)

>1. Tool windows could receive mousewheel events when the cursor is over them but they're not focused, this would save having to click them and click back to the document just to scroll down lists.

I'm afraid that's not currently possible for me to implement.

>2. The option to have all the classes in your project show up in the intellisense list even if the files aren't included in code. This is useful when using autoloading in PHP5.

Currently a phpCoder-only feature - a statement that I know you will use against me, but lets not get into that again just yet ;)

>3. When automatically completing an HTML tag, required attributes could automatically be put in. e.g. typing <style> automatically becomes <style type=""></style> and move the caret inside the quotes and open intellisense.

I'm sure a lot of people would hate hate, so it would obviously have to be optional. I will think about it, but won't make any promises :)

>4. This one is a long shot, but id's and classes in HTML could be parsed and show up in the CSS intellisense list for selectors.

Let me see if I'm getting this right: Are you suggesting that WebCoder proposes names for your CSS selectors from ID's and classes in your HTML code? :)
KasperTSW
Site Admin
 
Posts: 1469
Joined: Mon Jan 28, 2008 5:55 pm

Next

Return to Beta forum

Who is online

Users browsing this forum: No registered users and 1 guest

cron