[Gambas-user] Gambas 3 IDE features request

Fabián Flores Vadell fabianfloresvadell at ...626...
Sat Dec 18 15:41:42 CET 2010


2010/12/17 Fabián Flores Vadell <fabianfloresvadell at ...626...>:
> Hi. There are two features I beleave could be fine in Gambas 3 IDE:
>
> 1. Add an option named "create getters and setters" (or similar) to
> the context menu in the code editor, so the IDE can take care of this
> boring work. A simple comment can define attributes than will have
> accessor and modifiers, like that:
>
> 'cgs is for create getter and setter
> PRIVATE Name AS String 'cgs

I think that a method like this could do the job (I eliminated the "c"
for "create"):

Public Function makeGettersANDSetters(code As String) As String
  Dim acode As String[]
  Dim linecode, attribName, setter, getter, gettersAndsetters As String
  Dim set, get As Boolean
  Dim posPrivate, posComment, posAttribName As Integer

  acode = Split(code, "\n", "", True)

  For Each linecode In acode

    linecode = UCase(linecode)
    posPrivate = InStr(linecode, "PRIVATE")

    If posPrivate <> 0 Then
      posComment = InStr(linecode, "'")

      If posComment <> 0 Then
        set = InStr(linecode, "S", posComment + 1) > 0
        get = InStr(linecode, "G", posComment + 1) > 0

        posAttribName = posPrivate + Len("PRIVATE") + 1

        If get Or If set Then
          attribName = Mid(linecode, posAttribName, InStr(linecode, "
", posPrivate + Len("PRIVATE") + 1) - posAttribName)
          attribName = UCase(Left(attribName)) &
LCase(Right(attribName, Len(attribName) - 1))
        Endif

        If set Then
          setter = "\n\n" & "PUBLIC SUB set" & attribName & "(Value AS
type)" & "\n\n\n" & "END"
          gettersAndsetters &= setter
          setter = ""
          set = False
        Endif

        If get Then
          getter = "\n\n" & "PUBLIC FUNCTION get" & attribName &
"(Value AS type) AS Type" & "\n\n\n" & "END"
          gettersAndsetters &= getter
          getter = ""
          get = False
        Endif
        attribName = ""

      Endif

    Endif

  Next

  Return gettersAndsetters

End


-- 
Fabián Flores Vadell
www.comoprogramarcongambas.blogspot.com
www.speedbooksargentina.blogspot.com




More information about the User mailing list