⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tabsize.cfg

📁 flash programming STI 5.5.1.4 DCU3
💻 CFG
字号:
## See bug INSbl15568

## Support functions for GUI Code Window 'Set Source Code Tab Size' feature.

## User/ gui interface

proc _ST_SetTabSize {}
## eg, _ST_SetTabSize "FullPathAndFileName" (TabSize)
## eg, _ST_SetTabSize "FullPathAndFileName" 
## Returns tab size.
## If the file 'FullPathAndFileName' exists then set it's tab size to 'TabSize'.
## If the file 'FullPathAndFileName' does not exist then add it to the db and set it's tab size to 'TabSize'.
## If TabSize is not specified and 'FullPathAndFileName' does not exist then add it to the db and set it's tab size to the default tab size.
## If TabSize is not specified and 'FullPathAndFileName' exist then do nothing.
## If TabSize equals the null string, then create a default 'bogus' entry. (Error handling)

addhelp _ST_SetTabSize "\n_ST_SetTabSize FullPathAndFileName [TabSize]\n\nFullPathAndFileName : A string. The full path name of the file.\nTabSize : Optional integer specifying size of hard tabs in file 'FullPathAndFileName'. If not specified TabSize defaults to the value stored in the command language variable '_ST_global_TabSizeDefault'.\n\nPC users note: Directories must be delimited with the forward slash character '/'.\n\n"

proc _ST_WriteTabSizeTable {}
## eg, _ST_WriteTabSizeTable "TabSizeDBFileName"
## eg, _ST_WriteTabSizeTable
## With a string parameter writes the tab size db to the file "TabSizeDBFileName".
## Without a parameter the tab size db is listed to the command console.

addhelp _ST_WriteTabSizeTable "\n_ST_WriteTabSizeTable [TabSizeSessionFileName]\n\nTabSizeSessionFileName : When specified the current tab size session table is written to the named file, otherwise the table is printed to the Command Console window.\n\n"

proc _ST_SetDefaultTabSize {}
## eg, _ST_SetDefaultTabSize (TabSize)
## The TabSize integer parameter will become the default tab size.  Only files not referenced in the sessions tab size file will be affected by the new default tab size setting.

addhelp _ST_SetDefaultTabSize "\n_ST_SetDefaultTabSize <TabSize>\n\nTabSize : Positive integer.  New default tab size.\n\nSets the default tab size for files displayed in the gui Code window.\n\n"

proc _ST_ClearTabSizeTable {}
## eg, _ST_ClearTabSizeTable
## Clears all entries in the tab size db.

addhelp _ST_ClearTabSizeTable "\n_ST_ClearTabSizeTable\n\nClears the current tab size session table.\n\n"

## GUI specific interface

proc _ST_GetTabSize {}
## Calls _ST_SetTabSize
## eg, TabSize = _ST_GetTabSize "FullPathAndFileName"


## Internal routines

proc _ST_InitialiseTabSizeDB {}


## Implementation

proc _ST_InitialiseTabSizeDB
{
  _ST_global_TabSizeDefault = 8
  _ST_global_TabSizeSrcFileNameEndOfList = 0

  if((clsymbol _ST_global_TabSizeSrcFileNames) != 0) remove _ST_global_TabSizeSrcFileNames
  _ST_global_TabSizeSrcFileNames[_ST_global_TabSizeSrcFileNameEndOfList]="Tab Size db empty"
  
  if((clsymbol _ST_global_TabSizeTbl) != 0) remove _ST_global_TabSizeTbl
  _ST_global_TabSizeTbl[_ST_global_TabSizeSrcFileNames[_ST_global_TabSizeSrcFileNameEndOfList]]=_ST_global_TabSizeDefault
}

## Initialise the global state as soon as the routine to do it has been defined.
_ST_InitialiseTabSizeDB

proc _ST_SetTabSize
l_FileName = ""; l_TabSize = _ST_global_TabSizeDefault; l_BogusFileName = "BOGUSFILENAME"
{
  if( $# == 1 || $# == 2 ) {
    l_FileName = $1
    if( l_FileName == "" ) l_FileName = l_BogusFileName
    if( $# == 2 ) l_TabSize = mknum ($2)
    if( (clsymbol ("_ST_global_TabSizeTbl[" + l_FileName + "]")) == 1 ) {
      if( $# == 2 ) {
        if( l_FileName != l_BogusFileName ) {
          _ST_global_TabSizeTbl[l_FileName] = l_TabSize
        } else {
          l_TabSize = _ST_global_TabSizeTbl[l_BogusFileName]
        }
      }
    } else {
      _ST_global_TabSizeTbl[l_FileName] = l_TabSize
      _ST_global_TabSizeSrcFileNames[_ST_global_TabSizeSrcFileNameEndOfList] = l_FileName
      _ST_global_TabSizeSrcFileNameEndOfList++
    }
  }
  $$ = l_TabSize
}

proc _ST_WriteTabSizeTable
l_TabSizeSaveFile = ""; l_FileOpenFailed = 0; l_TabSizeSrcFileNameIndex = -1; l_Title1 = ""; l_Title2 = ""
{
  if( _ST_global_TabSizeSrcFileNameEndOfList > 0 ) {
    
    if( $# == 1 ) {
      l_TabSizeSaveFile = $1
      if( (fopen (l_TabSizeSaveFile) "w") == -1 ) l_FileOpenFailed = 1
    }

    if( l_FileOpenFailed == 0 ) {

      l_Title1 = "\#\# Tab Size Session Table.\n"
      l_Title2 = "\#\# PC users note: Directories must be delimited with the forward slash character '/'.\n"
      if( l_TabSizeSaveFile != "" ) {
        fwrite (l_TabSizeSaveFile) (l_Title1 + "\n")
        fwrite (l_TabSizeSaveFile) (l_Title2 + "\n")
      } else {
        write (l_Title1)
        write (l_Title2)
      }
      for( l_TabSizeSrcFileNameIndex = 0; l_TabSizeSrcFileNameIndex < _ST_global_TabSizeSrcFileNameEndOfList; l_TabSizeSrcFileNameIndex++ ) {
        l_PrintString = "_ST_SetTabSize \"" + (_ST_global_TabSizeSrcFileNames[l_TabSizeSrcFileNameIndex]) + "\" (" + (mkstr(_ST_global_TabSizeTbl[_ST_global_TabSizeSrcFileNames[l_TabSizeSrcFileNameIndex]])) + ")"
        if( l_TabSizeSaveFile != "" ) {
          fwrite (l_TabSizeSaveFile) (l_PrintString + "\n")
        } else {
          write (l_PrintString)
        }
      }
    }
  }
}

proc _ST_ClearTabSizeTable
{
  _ST_InitialiseTabSizeDB
}

proc _ST_GetTabSize
l_FileName = ""; l_TabSize = _ST_global_TabSizeDefault
{
  if( $# == 1 ) {
    l_FileName = $1
    l_TabSize = _ST_SetTabSize (l_FileName)
  }
  $$ = l_TabSize
}

proc _ST_SetDefaultTabSize
l_NewDefaultTabSize = 0; l_OldDefaultTabSize = _ST_global_TabSizeDefault
{
  if( $# != 1 ) {
    help _ST_SetDefaultTabSize
  } else {
    l_NewDefaultTabSize = mknum( $1 )
    if( l_NewDefaultTabSize >= 0 ) {
      _ST_global_TabSizeDefault = l_NewDefaultTabSize
    } else {
      help _ST_SetDefaultTabSize
    }
  }
  $$ = l_OldDefaultTabSize
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -