Results 1 to 9 of 9

Thread: sci4vb Scintinilla wrapper

  1. #1

    Thread Starter
    Frenzied Member
    Join Date
    Jun 2015
    Posts
    1,296

    sci4vb Scintinilla wrapper

    This month I ran claude.ai through another test to see if it could create a solid Scintinilla wrapper. I am pretty happy with it and already started using it in one of my projects.

    Scintinilla has a massive API, so we divided it up into its logical categories with various classes.

    I have also baked in some extra classes like a basic intellisense feature that is easy to use, and an object browser that automatically loads from it.
    If you need more complex intellisense you can just hook into the events directly and roll your own. If you load intellisense system from files, you can include comments automatically for obj Browser and not have to provide an extra tool tip file.

    Has support for folding, whitespace display, EOL conversions, line numbers, breakpoints, debugger line highlighting and several language highlighters compiled in. It also internally manages breakpoints and margin clicks.

    Ive tried to bake in everything i needed over the years so it takes as little host code as possible. Ocx is 500k and the SciLexer.dll I am using is 1mb

    Check out the ./test/ project for a demo or open the project group to start exploring it live.

    https://github.com/dzzie/sci4vb
    Attached Images Attached Images  
    Last edited by dz32; Nov 30th, 2025 at 03:13 PM.

  2. #2
    PowerPoster wqweto's Avatar
    Join Date
    May 2011
    Location
    Sofia, Bulgaria
    Posts
    6,192

    Re: sci4vb Scintinilla wrapper

    I was wondering how good Claude is in making professional ActiveX controls directly in C++ which will allow embedding scintilla library in final binary.

  3. #3

    Thread Starter
    Frenzied Member
    Join Date
    Jun 2015
    Posts
    1,296

    Re: sci4vb Scintinilla wrapper

    that would be a great experiment !

    Maybe I will ask claude to port this

    It has done excellent with low level COM on the C++ side, it nailed the funky IDispatch proxy and the CallbyNameEx

    https://github.com/dzzie/js4vb/blob/...y/dynproxy.cpp
    https://github.com/dzzie/js4vb/blob/...proxy.cpp#L761
    Last edited by dz32; Dec 2nd, 2025 at 08:37 AM.

  4. #4
    Fanatic Member
    Join Date
    Jun 2016
    Location
    España
    Posts
    632

    Re: sci4vb Scintinilla wrapper

    good job, could you update the js4vb debugger with this new version
    Last edited by yokesee; Nov 30th, 2025 at 09:56 AM.

  5. #5

    Thread Starter
    Frenzied Member
    Join Date
    Jun 2015
    Posts
    1,296

    Re: sci4vb Scintinilla wrapper

    I added a new debugger example for js4vb using the new sci4vb. I also had to update the sci4vb, I forgot to raiseevent keypressed so the F7 etc would work.

    edit: updated to use the new sci4vb internal breakpoint management and executing line highlighting

    https://github.com/dzzie/js4vb/tree/...s/9_dbg_sci4vb

    one of my goals is that you shouldnt have to know any of scintinillas internal guts to use sci4vb.

    early versions of scivb2, i actually had to subclass it on my host forms to hook into margin clicks for breakpoint management etc or sending it raw scintinilla messages to do stuff that wasnt in the ocx yet. I think I have all of that bundled in now.
    Last edited by dz32; Dec 2nd, 2025 at 08:37 AM.

  6. #6
    PowerPoster
    Join Date
    Jan 2020
    Posts
    5,541

    Re: sci4vb Scintinilla wrapper

    If it is used to run VBA code, can it succeed?

    If you can still code twinbasic, you don't need to open the download IDE.You can generate an exe by calling its compiler command directly.

  7. #7

    Thread Starter
    Frenzied Member
    Join Date
    Jun 2015
    Posts
    1,296

    Re: sci4vb Scintinilla wrapper

    this is just a fancy text box for display. it also supports different language syntax coloring and intellisense.

    this component must be joined with a separate script execution engine or compiler.

    The link in the post above shows a sample or using it with a javascript engine to execute and debug with single step and breakpoints.

  8. #8
    PowerPoster
    Join Date
    Jan 2020
    Posts
    5,541

    Re: sci4vb Scintinilla wrapper

    scriptControl.(vbscript)Cannot support Chinese variable name, Chinese function name
    Code:
    var scriptControl = new ScriptControl { Language = "VBScript" };
         
         // VBS code: including Chinese function name and variable
         string vbsCode = @"
             Function unicodeSUN(UNICODE1,UNICODEARG2)
                
             End Function
             
         scriptControl.ExecuteStatement(vbsCode);
    fram

    You successfully implemented a JavaScript parser engine with VB6
    Is it possible to implement a VB6, VBS code parser with VB6 code
    The freebasic programming language, which may support very simple. VBS code parsing, but it definitely doesn't support Chinese or other Unicode characters, function names, variable names
    Gamabasic, perhaps the largest VB scripting tool in Linux,

    Develop a cross-platform VB script engine with twinbasic later

    I don't know if your current code supports Unicode string function names and Chinese variable names.

  9. #9
    PowerPoster
    Join Date
    Jan 2020
    Posts
    5,541

    Re: sci4vb Scintinilla wrapper

    Foreigners use VB6 code to directly implement a JavaScript parsing engine, which also supports code debugging, and becomes a small IDE, just like WPS JSA. Maybe quickjs, it can also achieve this function, but compile it into a simple quickjs. DLL, do not know how to let it achieve each line of code debugging separately? For example, get the names of all global variables and monitor the changes of variable values.Which function is currently running? Lists all the variables in the function. Then how do you add support for interface functions that control host exposure? Host and script code, interoperability, how to make it support Chinese function names, variable names? How to change the semicolon of each line to a colon? Maybe there's a way to make it work without a semicolon? How to make it call windows API functions? A com object, such as a Damo. DLL, adodb. Recordset, excel. Application object?

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width