Skip to content

新增 Projection ConfigValue ConfigList ConfigItem #102

Merged
hchunhui merged 16 commits intohchunhui:masterfrom
shewer:dev06
Apr 17, 2021
Merged

新增 Projection ConfigValue ConfigList ConfigItem #102
hchunhui merged 16 commits intohchunhui:masterfrom
shewer:dev06

Conversation

@shewer
Copy link
Copy Markdown
Contributor

@shewer shewer commented Mar 31, 2021

便於 調用 config:get_list (path) 或 Create ConfigList
exp
env.p1=Projection()
env.p1:load( config:get_list( "translator/commit_format)) )
env.p1:apply( str )

local function init_func(env)

       local config=env.engine.schema.config
   -- load ConfigList  form  path
       local proedit_fmt_list = conifg:get_list("translastor/preedit_format")
       -- print value
       for i=0,proedit_fmt_list.size do
               print(i,  proedit_fmt_list:get_value_at(i).value)
       end
       --   create Projection obj
       local p1=Projection()
       p1:load(proedit_fmt_list)

       --  user create  Projection obj
       local pfl2= ConfigList()
       -- create ConfigValue    &  ConfigList  ust isnert( index, ConfigValue)  append()
       local v1= ConfigValue("xlit|abc|xyz|")
       pfl2:append(v1)
       pfl2:append( ConfigValue("xlit|def|tuv|"))
       pfl2:insert(1,ConfigValue("xlit|ghi|qrs|"))
       local p2=Projection()
       p2:load(pfl2)
       local str1= "abcdefg"
       --
       print(str1 , p1:apply(str1), p2:apply(str1) )
       --
       env.p1=p1
       env.p2=p2
end
local function func(input,seg,env)
       for cand in input:iter() do
               cand.comment=  env.p1(cand.comment) .. env.p2(cand.comment)
               yield(cand)
       end
end


return { init=init_func, func=func }
---   rime.lua
--   projection_filter= require("projection.lua")
--
--
--   schema.yaml
--   insert to /engine/filter
--   lua_filter@projection_filter
--

shewer added 4 commits March 30, 2021 20:03
Signed-off-by: shewer <shewer@gmail.com>
Signed-off-by: shewer <shewer@gmail.com>
Signed-off-by: shewer <shewer@gmail.com>
Signed-off-by: shewer <shewer@gmail.com>
@hchunhui
Copy link
Copy Markdown
Owner

hchunhui commented Apr 1, 2021

这个pr已经完成了吗?有没有解决你在issues里面提到的问题?

@shewer
Copy link
Copy Markdown
Contributor Author

shewer commented Apr 1, 2021

已可解決 preedit_format, commit_format 轉換 , 用下一個 PR 增加於 ConfigMapReg

@shewer shewer closed this Apr 1, 2021
@shewer shewer reopened this Apr 1, 2021
shewer added 3 commits April 2, 2021 01:50
Signed-off-by: shewer <shewer@gmail.com>
Signed-off-by: shewer <shewer@gmail.com>
Comment thread src/types.cc Outdated
Copy link
Copy Markdown
Contributor Author

@shewer shewer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

忘了說明 爲何要 to_list to_map to_value
因爲 在path 結點下 第一個取得的是 ConfigItem (在未知 path 爲何種型別時最安全) ,
其實最佳方法
是 統一function name get & set 取得 ConfigItem 時就判定型別 and Return 各種 type(Map List Value)
給USER 減少記 function name

目前 我只會用 強型別去 Wrap 那些 function ,有點麻煩

如果統一 用get 好處是 function name 一致 且 都從 configItem 轉置完成給user 會方便許多
或許可以提供 範例 利用 lua push pop 不同型別 參數 和 return 嗎

in lua  funcall   
   local c= config:get (  多型 )  
                           -->   C++   LuaStatus   get arg
                                    ConfigItem   item=config.getItem(path);
                                     if  (item.type==ConfigItem::kList 
                                                 push stack (an<ConfigList>)  item
                                     if (item.type== ConfigItem::kScalar )
                                                 push stack (an<ConfigValue>)
                                    
     c                        <---- return 
               

              

Comment thread src/types.cc Outdated
Comment thread src/types.cc Outdated
@hchunhui
Copy link
Copy Markdown
Owner

除了 element() 外,基本没有问题了。

我准备合并这个pr。但请先在这个branch上fix,并把lua脚本示例整理好(缩进、注释等)。

@hchunhui
Copy link
Copy Markdown
Owner

@shewer 麻烦把config相关的fix放到dev06这个branch,我来合并。

shewer and others added 4 commits April 13, 2021 07:17
Signed-off-by: shewer <shewer@gmail.com>
This reverts commit 6641fc0.
@hchunhui hchunhui merged commit c208fac into hchunhui:master Apr 17, 2021
@hchunhui
Copy link
Copy Markdown
Owner

@shewer 谢谢,合并了。我重整了格式并删除了projection.lua。后者是因为太粗糙,起不到示例的效果。

另外一个建议:pull request麻烦注意一下最终的diff。相对主分支作修改,而不是相对还没有merge的代码;不要引入无关代码的格式调整;新加的部分缩进尽量与现有代码保持一致;每行结尾不要有多余空格。这些建议的目的都是为了突出重点,方便review;最终merge时也不易引入冲突,影响别人。

@shewer
Copy link
Copy Markdown
Contributor Author

shewer commented Apr 17, 2021

謝謝 受教了

@groverlynn
Copy link
Copy Markdown
Contributor

這個應該叫「Formatter」而不是「Projector」 吧?librime的配置項和源代碼都是用「Formatter」

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants